0

我想向我的 postgREST 网络服务器发出 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 配置位于“包含”文件中,似乎已加载(当我故意在此文件中输入错误语法时会发生错误),它看起来像这样:
<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 页面
  • 我的error.logapache 配置文件不包含任何错误(它包含装订错误,我通过SSLUseStapling off在我的配置中添加该行来解决)

我不知道该怎么办了。而且因为我没有任何错误日志,我什至不知道如何开始调试它。如果有人可以提供给我任何提示,我会很高兴。

4

1 回答 1

0

我已经成功地将 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/"
于 2022-01-04T14:08:03.953 回答