ホームページ > バックエンド開発 > PHPチュートリアル > Nginx リバース プロキシ ポート ドメイン名にアクセスできない問題が解決されました

Nginx リバース プロキシ ポート ドメイン名にアクセスできない問題が解決されました

WBOY
リリース: 2016-08-08 09:29:20
オリジナル
3858 人が閲覧しました

私は新年の最初の仕事の朝にこの問題を解決しました、正直に言うと、それは初めて遭遇しました。ドメイン名を使用して 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
4
8.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
3

4





proxy_pass http:

proxy_set_header ホスト $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

上記のように、ホスト構成にはホストのみがあり、対応するポートがないため、プロキシされる場所で間違ったポートを取得することになります。この記事では Java を例として取り上げます:

1

2

3

4

5

String スキーム = httpRequest.getScheme();

     文字列 serverName = httpRequest.getServerName();

    int int

ポート = httpRequest.getServerPort();    //服务请求地址

    "://"+serverName+":"+port+"/ime-server/rest/"+serviceName+"/wmts";

//サービスリクエストアドレス
🎜String requestURI = スキーム+🎜":"🎜🎜+port+🎜 "/ime-server/rest/" +serviceName+🎜

この時点で、nginxがリッスンするポートは9090ですが、取得されたポートは80です。この間違いは私をとても落ち込ませます。したがって、nginx 設定ファイルを変更し、Host の後の値を $host:$server_port に変更します。設定ファイルは次のようになります。 6

7

8

場所 /ime-server {

html;

Index.html Index.htm;

http:

proxy_set_header ホスト $host:$server_port;

             X-Real-IP $remote_addr;

             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             //ime-server/ime-server;

            }

            

             nginx,./nginx -s reloadを再起動します。次に、プロキシされた後のポート情報が正しいかどうかを確認します。 上記は、Nginx リバース プロキシ ポート ドメイン名にアクセスできない問題の解決策を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

        }

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート