内部服务器错误 - ProxyPass 和 ProxyReseverse (Apache2)

内部服务器错误 - ProxyPass 和 ProxyReseverse (Apache2)

我正在尝试设置 ProxyPass 和 ProxyReverse,以便可以在两个不同的服务器之间共享一个域。

希望实现:

领域:https://example.com

服务器 A:https://example.com/quotes

服务器B:https://testing.com/quotes

当我在中设置代理时VirtualHost,它给出了 500 内部服务器错误。

站点启用示例:

 <VirtualHost _default_:443>
        Protocols h2 h2c http/1.1

        SSLEngine on
        SSLProtocol +TLSv1.1 +TLSv1.2
        SSLCertificateFile ../../certificate.crt
        SSLCertificateKeyFile ../../certificate.key
        SSLCACertificateFile ../../certificate.ca-bundle

        ProxyRequests Off

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>

        <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
        </Directory>

        <Proxy *>
          Require all granted
        </Proxy>

        ProxyPass /quotes https://testing.com/quotes
        ProxyPassReverse /quotes https://testing.com/quotes
    
        ErrorLog syslog
        LogLevel emerg
</VirtualHost>

我是否遗漏了什么?

答案1

如果您检查 vh 错误日志,它会告诉您它无法识别 url 方案。这是因为您没有为代理连接指定 SSL 引擎。

无论何时代理到 https,都需要这个:

SSLProxyEngine on
ProxyPass /quotes https://testing.com/quotes
ProxyPassReverse /quotes https://testing.com/quotes

补充说明一下,您不需要:

    <Proxy *>
      Require all granted
    </Proxy>

认为这些与正向代理比与反向代理更相关。

相关内容