Ssl
<location> 括號中的 SSL mod_proxy 問題
我無法讓 proxypass 在 apache 中工作。
我的配置文件如下:
<VirtualHost 1.2.3.4:443> ServerName example.com ServerAlias www.example.org ServerAdmin info@example.org DocumentRoot /home/admin/web/knyz.org/public_html ScriptAlias /cgi-bin/ /home/admin/web/knyz.org/cgi-bin/ Alias /vstats/ /home/admin/web/knyz.org/stats/ Alias /error/ /home/admin/web/knyz.org/document_errors/ #SuexecUserGroup admin admin CustomLog /var/log/apache2/domains/knyz.org.bytes bytes CustomLog /var/log/apache2/domains/knyz.org.log combined ErrorLog /var/log/apache2/domains/knyz.org.error.log <Directory /home/admin/web/knyz.org/public_html> AllowOverride All SSLRequireSSL Options +Includes -Indexes +ExecCGI </Directory> <Directory /home/admin/web/knyz.org/stats> AllowOverride All </Directory> SSLEngine on SSLVerifyClient none SSLCertificateFile /home/admin/conf/web/ssl.knyz.org.crt SSLCertificateKeyFile /home/admin/conf/web/ssl.knyz.org.key SSLCertificateChainFile /home/admin/conf/web/ssl.knyz.org.ca <IfModule mod_ruid2.c> RMode config RUidGid admin admin RGroups www-data </IfModule> <IfModule itk.c> AssignUserID admin admin </IfModule> IncludeOptional /home/admin/conf/web/sapache2.knyz.org.conf* ##ISSUE IS HERE!!! <Location /admin> ProxyPass https://localhost:8083 ProxyPassReverse https://localhost:8083 </Location> </VirtualHost>
/admin
期望的結果:訪問子目錄時將顯示來自 localhost 埠 8083 的頁面。實際結果:錯誤 500
問題似乎與此處相同:Apache ProxyPass with SSL
除了解決方案對我不起作用。
嘗試這樣做時,我在重新啟動 apache 時收到以下錯誤:
SSLProxyEngine not allowed here
從錯誤日誌(關於錯誤 500):
[Sun Dec 13 21:33:31.062959 2015] [ssl:error] [pid 1181] [remote 127.0.0.1:8083] AH01961: SSL Proxy requested for example.org:443 but not enabled [Hint: SSLProxyEngine] [Sun Dec 13 21:33:31.063033 2015] [proxy:error] [pid 1181] AH00961: HTTPS: failed to enable ssl support for 127.0.0.1:8083 (localhost)
我該如何解決這個問題?
更新
我用以下內容替換了位置塊
ProxyPreserveHost On ProxyPass /blog http://127.0.0.1:2368/blog ProxyPassReverse /blog http://127.0.0.1:2368/blog ProxyPass /admin https://127.0.0.1:8083 ProxyPassReverse /admin https://127.0.0.1:8083
現在
/blog
可以正常工作,但/admin
不能。這意味著問題肯定出在 SSL 上。
據我所知,ProxyPass 並不打算在一個塊內使用——你把它放在一個
<Location>
塊中。它需要在該塊之外,並且您還需要打開SSLProxyEngine
:SSLProxyEngine On ProxyPass /admin https://localhost:8083/ ProxyPassReverse /admin https://localhost:8083/