Apache-2.2
你如何設置 SSL 和 Nginx 代理?
我讓 Nginx 監聽埠 80 上的流量並通過埠 8080 代理某些請求到 Apache。我將設置 Nginx 監聽埠 443 的 https 流量,但我的問題是現在應該如何進行代理?Apache 的代理需要是 https 還是 Nginx 已經對其進行了解碼,以便我可以繼續通過埠 8080 將其發送到 Apache。順便說一句,Apache 執行時安裝的模組數量可能最少,並且目前沒有與 SSL 相關的模組,會我需要安裝嗎?
Graham Dumpleton 提出的以下解決方案在將 nginx+ssl 作為 apache+wsgi 的代理執行時解決了 SSL 重定向循環的問題。
在您的 nginx.conf 文件中,您需要:
proxy_set_header X-Url-Scheme $scheme;
雖然您的 WSGI 包裝器看起來像這樣:
import os, sys apache_configuration= os.path.dirname(__file__) project = os.path.dirname(apache_configuration) workspace = os.path.dirname(project) sys.path.append(workspace) os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' import django.core.handlers.wsgi _application = django.core.handlers.wsgi.WSGIHandler() def application(environ, start_response): environ['wsgi.url_scheme'] = environ.get('HTTP_X_URL_SCHEME', 'http') return _application(environ, start_response)