Ssl

<location> 括號中的 SSL mod_proxy 問題

  • December 14, 2015

我無法讓 proxypass 在 apache 中工作。

我的配置文件如下:

&lt;VirtualHost 1.2.3.4:443&gt;

   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
   &lt;Directory /home/admin/web/knyz.org/public_html&gt;
       AllowOverride All
       SSLRequireSSL
       Options +Includes -Indexes +ExecCGI
   &lt;/Directory&gt;
   &lt;Directory /home/admin/web/knyz.org/stats&gt;
       AllowOverride All
   &lt;/Directory&gt;
   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
   &lt;IfModule mod_ruid2.c&gt;
       RMode config
       RUidGid admin admin
       RGroups www-data
   &lt;/IfModule&gt;
   &lt;IfModule itk.c&gt;
       AssignUserID admin admin
   &lt;/IfModule&gt;

   IncludeOptional /home/admin/conf/web/sapache2.knyz.org.conf*

   ##ISSUE IS HERE!!!
   &lt;Location /admin&gt;
       ProxyPass https://localhost:8083
       ProxyPassReverse https://localhost:8083
   &lt;/Location&gt;
&lt;/VirtualHost&gt;

/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 並不打算在一個塊內使用——你把它放在一個&lt;Location&gt;塊中。它需要在該塊之外,並且您還需要打開SSLProxyEngine

   SSLProxyEngine On
   ProxyPass /admin https://localhost:8083/
   ProxyPassReverse /admin https://localhost:8083/

引用自:https://serverfault.com/questions/742795