Apache-2.2

具有 SSL 處理的 Apache 反向代理

  • March 19, 2015

我正在嘗試使用 apache 作為反向代理,並從底層 Node Js 應用程序中解除安裝 SSL 處理。我已經定義了配置,但它看起來好像系統正在嘗試執行反向代理部分。例如在 ssl_error_log 我看到以下內容:

$$ error $$文件不存在:/etc/httpd/htdocs

每當我訪問站點的根目錄時,這似乎就會發生。我不確定,但它看起來好像正在嘗試從該目錄中提供頁面。我的apache配置如下:

<VirtualHost *:443>
   ServerName portal.somewhere.com
   SSLEngine On
   SSLProxyEngine On
   ProxyRequests Off
   ProxyPreserveHost On

   SSLCertificateFile /etc/pki/tls/certs/wildcard.somewhere.com.crt
   SSLCertificateKeyFile /etc/pki/tls/private/wildcard.somewhere.com.key


   ProxyPass /  http://12.7.20.78:80/
   ProxyPassReverse / http://12.7.20.78:80/

   ErrorLog logs/portal.somewhere.com-error_log
   CustomLog logs/portal.somewhere.com-access_log common

</VirtualHost>

當我 ssh 到 12.7.20.78 並執行 tcpdump 時,我看到沒有任何活動到達該機器。出於調試目的,我能夠為在埠 80(無 ssl)上執行的配置翻轉上述配置:

<VirtualHost *:80>
   ServerName portal.somewhere.com
   ProxyRequests Off

   ProxyPass /  http://12.7.20.78:80/
   ProxyPassReverse / http://12.7.20.78:80/

   ErrorLog logs/portal.somewhere.com-error_log
   CustomLog logs/portal.somewhere.com-access_log common

</VirtualHost>

執行此配置時,系統會轉發請求並從機器提供頁面:http: //12.7.20.78,沒有任何問題。tcpdump 證實了這一點。

好吧,在 443 上設置了兩個配置,導致了混亂。刪除了舊的。

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