Nginxがポート80でトラフィックをリッスンし、特定のリクエストをポート8080経由でApacheにプロキシします。httpsトラフィックのポート443をリッスンするようにNginxを設定しますが、私の質問は、プロキシを今どのように行う必要があるかです。 Apacheへのプロキシはhttpsである必要がありますか、それともNginxがすでにデコードしているので、ポート8080を介してApacheに送信し続けることができます。ところで、Apacheは可能な限り少ないモジュール数で実行されており、現在SSL関連のモジュールはありません。何かインストールする必要がありますか?
Graham Dumpletonによって提案された次のソリューションは、Apache + wsgiへのプロキシとしてnginx + sslを実行しているときの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)
それはプログラミングの質問のようには聞こえませんが、とにかく...いいえ、ApacheでSSLを有効にする必要はありません。 (ポート443で)HTTPS要求をリッスンしているサーバーのみがSSLを必要とします。
古い質問ですが、参考のために私のブログ投稿を見ることができます Apacheの名前ベースのVirtualHostsのSSLプロキシとしてNginxを使用
基本的にポート80でApacheに転送し、Apacheで mod_rpaf (リバースプロキシ追加転送)を使用して、リクエストをHTTPSとして認識します。これは、サーバー変数を使用してURLを構築するフレームワークに必要です。 。