web-dev-qa-db-ja.com

SSLとNginxプロキシをどのように設定しますか?

Nginxがポート80でトラフィックをリッスンし、特定のリクエストをポート8080経由でApacheにプロキシします。httpsトラフィックのポート443をリッスンするようにNginxを設定しますが、私の質問は、プロキシを今どのように行う必要があるかです。 Apacheへのプロキシはhttpsである必要がありますか、それともNginxがすでにデコードしているので、ポート8080を介してApacheに送信し続けることができます。ところで、Apacheは可能な限り少ないモジュール数で実行されており、現在SSL関連のモジュールはありません。何かインストールする必要がありますか?

5
Jason Christa

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)
7
Jason Christa

それはプログラミングの質問のようには聞こえませんが、とにかく...いいえ、ApacheでSSLを有効にする必要はありません。 (ポート443で)HTTPS要求をリッスンしているサーバーのみがSSLを必要とします。

3
David Z

古い質問ですが、参考のために私のブログ投稿を見ることができます Apacheの名前ベースのVirtualHostsのSSLプロキシとしてNginxを使用

基本的にポート80でApacheに転送し、Apacheで mod_rpaf (リバースプロキシ追加転送)を使用して、リクエストをHTTPSとして認識します。これは、サーバー変数を使用してURLを構築するフレームワークに必要です。 。

0
Koen.