你如何设置 SSL 和 Nginx 代理?

Jas*_*sta 5 ssl nginx https apache-2.2

我让 Nginx 侦听端口 80 上的流量并通过端口 8080 将某些请求代理到 Apache。我将设置 Nginx 以侦听端口 443 以获取 https 流量,但我的问题是现在应该如何进行代理?Apache 的代理需要是 https 还是 Nginx 已经对其进行了解码,以便我可以继续通过端口 8080 将其发送到 Apache。顺便说一句,Apache 运行时安装的模块数量可能最少,并且目前没有与 SSL 相关的模块,会吗?我需要安装任何吗?

Jas*_*sta 7

Graham Dumpleton 提出的以下解决方案解决了运行 nginx+ssl 作为 apache+wsgi 代理时 SSL 重定向循环的问题。

在你的 nginx.conf 文件中,你需要有:

proxy_set_header X-Url-Scheme $scheme;
Run Code Online (Sandbox Code Playgroud)

虽然您的 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)
Run Code Online (Sandbox Code Playgroud)