在<location>括号中的SSL mod_proxy问题

我有麻烦得到proxypass在Apache中工作。

我的configuration文件如下:

<VirtualHost 1.2.3.4:443> ServerName example.com ServerAlias www.example.org ServerAdmin [email protected] 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子目录时,将显示8083端口上的本地主机页面。

实际结果:错误500

这个问题似乎和这里一样: 带有SSL的Apache ProxyPass

除了解决scheme不适合我。

当试图这样做,我重新启动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) 

我该如何解决这个问题?

更新

我用下面的地方块replace了位置块

 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/