我正在尝试设置 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>
我有什么遗漏的吗?
如果您检查 vh 错误日志,它会告诉您它无法识别 url 方案。这是因为您没有为代理连接指定 SSL 引擎。
每当你代理到 https 时,你都需要这个:
作为补充说明,您不需要:
认为这些与正向代理比反向代理更相关。