10

ポート 80 とポート 81 など、同じインスタンスを使用して 2 つのポートで nginx を構成しようとしていますが、今のところうまくいきません。これが私がやろうとしていることの例です:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen  80;
        server_name  chat.local.com;

        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header Host $host;
            proxy_buffering off;

        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    server {
        listen  81;
        server_name  console.local.com;
        location / {
            proxy_pass http://127.0.0.1:8888;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header Host $host;
            proxy_buffering off;
        }
    }
}

console.local.com を実行しようとすると、chat.local.com のコンテンツが表示されます。nginx を 2 つのポートで実行する方法はありますか? 前もって感謝します!

4

2 に答える 2

7

あなたの設定は問題ないようです

問題はこれだと思います(間違っている場合は修正してください):

  • ポート 81 でリッスンしている console.local.com があり、
  • つまり、http://console.local.com:81/としてアクセスする必要があります。
  • http://console.local.com/としてアクセスすると (明示的なポートがないため、デフォルトでポート 80 になります)、nginx がチェックし、その server_name のポート 80 でリッスンしていることに注意し、その結果、リクエストをデフォルトに渡します。サーバーブロック。デフォルトのサーバーブロックは最初のものであるため(構成を変更する必要がない場合)、chat.local.com の処理が行われます。

ほとんどの場合、次の理由から、console.local.com をポート 80 でリッスンするように変更する必要があります。

  • 両方のサーバーブロックの server_name ディレクティブは、リクエストを区別するのに十分です
  • これにより、常にリクエストのドメイン名に :81 を追加する必要がなくなります
于 2013-04-25T07:07:45.690 に答える
4

listen ステートメントを 2 回簡単に追加できます。以下の ように
80を聞いてください。
81を聞く。

これはnginxで動作するはずです

于 2016-04-08T13:41:27.747 に答える