0

nginx フロントエンド サーバーと django プロジェクトを提供する apache バックエンドを備えた Ubuntu 13.04 仮想マシンがあります。Apache 自体は、nginx とは別に動作している場合 (およびその逆) は正常に動作しているようです。しかし、nginx が連携して動作する場合、リクエストは Apache に渡されないようです。

ブラウザに my_host_name.com と入力すると、nginx の「Welcome....!」が表示されます。ページですが、代わりにApacheでレンダリングされたページにする必要があります。

UPD:「ようこそ...」ページは、ブラウザ(クロム)が再起動された後(キャッシュ?)、最初のロード時にのみ表示されます。 ... エラーコード: ERR_CONNECTION_RESET ") . ホスト OS から _my_domain_name.com_ にアクセスすると、すぐに同じエラー ページが表示されます。構成を変更するたびに、(念のため) 両方のサーバーを再起動します。

my_domain_name.com:8000 と入力すると、正しい apache 応答が返されます (静的ファイルは除外されます)。

グーグルで一日を過ごした後でも、何が問題なのかを見つけることができません。

私のサーバーの設定は次のとおりです。

ファイル: /etc/nginx/proxy_params

proxy_redirect              off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size        10m;
client_body_buffer_size     128k;
proxy_connect_timeout       90;
proxy_send_timeout          90;
proxy_read_timeout          90;
proxy_buffer_size           4k;
proxy_buffers               4 32k;
proxy_busy_buffers_size     64k;
proxy_temp_file_write_size  64k;

ファイル: /etc/nginx/sites-available/my_domain_name

server {
    listen 80;
    server_name my_domain_name.com;
    location / {
        access_log /var/log/nginx/localhost.access.log;
        proxy_pass http://127.0.0.1:8000;
        include /etc/nginx/proxy_settings;
    }
    location /static/ {
        root /path/to/my/project/root;
    }
    location /media/{
        root /path/to/my/project/root;
    }
}

ファイル: /etc/apache2/sites-available/my_domain_name.conf

<VirtualHost *:8000>
    WSGIScriptAlias / /path/to/my/project/root/django.wsgi

    ServerName my_domain_name.com


    <Directory /path/to/my/project/root>
        Order allow,deny
        Allow from all
    </Directory>

    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips  192.168.137.10 127.0.0.1
</VirtualHost>

ファイル: /etc/apache2/ports.conf

NameVirtualHost *:8000
Listen 8000

ファイル: /etc/hosts

192.168.137.10 my_domain_name.com
127.0.0.1      my_domain_name.com

ありがとう!

4

1 に答える 1

0

特にApacheがリダイレクトを発行していたときに、Apacheバックエンドを使用したNginxセットアップで同様の問題が発生していました。

/some-location => /some-location/

Nginx はポート 80 で実行され、バックエンドの Apache はポート 8000 で実行されていました。ポート 8000 は 301 リダイレクトでクライアントに渡されていました。

少しプレイに時間がかかりましたが、動作させることができました。これが私がしなければならなかったことです:

location / {
   proxy_pass      http://127.0.0.1:8000;
   proxy_redirect  default;
   proxy_redirect  http://$host:8000/ http:/$host/;
   ... etc ..
}

Nginx と Apache 仮想サーバーの両方が同じホスト名 (つまり、mydomain.com) を使用しています。

于 2015-04-15T05:04:58.957 に答える