Apache + CentOS中的反向代理,用于对PostgREST Web服务器的HTTPS请求

3zwtqj6y  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(120)

我想向我的postgrestweb服务器发出https请求,它的设计不支持https。我花了几天时间,现在我不知道任何进一步的...

我的设定

  • 我的服务器运行的是CentOS 7.9.2009
  • 我有一个网站域,使用WordPress来提供我的内容在home/myuser/public_html
  • 我在运行于端口3000的服务器上安装了PostgREST 7.0.1
  • 我正在运行Apache/2.4.51(cPanel)
    我的问题
  • 下面的请求可以正常工作:http://my-domain.com:3000/my_db_table
  • 我想运行相同的请求,如下所示:https://my-domain.com/api/my_db_table
  • 我的Apache配置在一个“includes”文件中,看起来是加载的(因为当我故意在这个文件中放入错误的语法时会出现错误),它看起来像这样:
<VirtualHost *:443>

    DocumentRoot /
    ServerName my-domain.com
    ServerAlias my-domain
    ErrorLog /home/myuser/public_html/api/error.log
    CustomLog /home/myuser/public_html/api/access.log combined

    SSLEngine on
    SSLUseStapling off
    SSLCertificateFile /etc/ssl/certs/server.my-domain.com.crt
    SSLCertificateKeyFile /etc/ssl/private/server.my-domain.com.key

    <Location /api/ >
         ProxyPreserveHost On
         ProxyPass http://localhost:3000/
         ProxyPassReverse http://localhost:3000/
         RequestHeader set X-Forwarded-Port "443"
         RequestHeader set X-Forwarded-Proto "https"
   </Location>
</VirtualHost>
  • 执行httpd -t会传回Syntax OK
  • 更改后运行sudo systemctl restart httpd
  • 当我尝试做一个请求,如curl -i https://my-domain.com/api/my_db_table,我被重定向到我的WordPress网站的404页面
  • 我的apache配置的error.log文件不包括任何错误(它包括装订错误,我通过在我的配置中添加SSLUseStapling off行来解决)

我不知道该怎么做了。因为我没有任何错误日志,我甚至不知道如何开始调试它。我会很高兴有人能给我任何提示。

niknxzdl

niknxzdl1#

我已经成功地将https与postgrest一起使用,并在virtuahost部分进行了以下设置,但我没有使用标记。

ProxyHTMLEnable On
    ProxyPreserveHost On
    SSLEngine on
    SSLProxyEngine On
    RewriteEngine on
    #Proxy for postgrest api
    ProxyPassMatch    "/api/(.*)" "http://localhost:3000/$1"
    ProxyPassReverse  "/api/" "http://localhost:3000/"

相关问题