Apache-2.2

你如何設置 SSL 和 Nginx 代理?

  • October 22, 2012

我讓 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)

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