私は新年の最初の仕事の朝にこの問題を解決しました、正直に言うと、それは初めて遭遇しました。ドメイン名を使用して Web プロジェクトをプロキシすると、リクエスト時に何らかの理由でドメイン名が使用されず、IP ポートがパスとして直接使用され、Web ページがクラッシュして使用できなくなります。 nginxは、フロントエンドサーバーとして使用されているため、変更の前と後の比較を行いました。 com
;Location/{ proxy_set_header X-Real-IP $remote_addr; Index Index Index.html Index .htm ; }
Modified:
server {
80; サーバー名 xxx.aaaaa.com ; location / {
proxy_pass http://10.1
48.22.81:8180; proxy_read_timeout 600s; proxy_set_header $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; インデックスIndex.html Index.htm; 02 503 504 /50x.html; location = /50x.html { root html;
}
} 訪問は成功しました。
location ~ .*.(gif|jpg|png|html|htm|css|js|flv|ico|swf)(.*) を使用することをお勧めします。 {
proxy_redirect off; S Proxy_Set_header Host $ Host; Proxy_cache_valid 200 302 1H; インデックスindex.htmlindex.htm;
}
効率が良くなります。
主な参考文献は原文です: http://www.cnblogs.com/likehua/p/4056625.html
The内容は以下のとおりです:
Nginxのデフォルトのリバースポートは80であるため、プロキシ後のポートが80となり、アクセスエラーが発生するという問題があります。主な原因は、Nginx 設定ファイルのホスト設定に応答ポートが設定されていないことです。
関連する設定ファイルは次のとおりです:
1
2 proxy_set_header
ホスト $host;
3
4
proxy_pass
http:
上記のように、ホスト構成にはホストのみがあり、対応するポートがないため、プロキシされる場所で間違ったポートを取得することになります。この記事では Java を例として取り上げます:
この時点で、nginxがリッスンするポートは9090ですが、取得されたポートは80です。この間違いは私をとても落ち込ませます。したがって、nginx 設定ファイルを変更し、Host の後の値を $host:$server_port に変更します。設定ファイルは次のようになります。 6
7