Nginxに異なるポートをリッスンさせることは可能ですか?


82

1つのLinux Azure VMで1つのNginxを作成しました。ポート番号を変更するとコンテンツが異なるように、nginxに異なるポートをリッスンさせることができます。VM上のHTTPに関連するポートを2つ以上作成すると、衝突が発生することがわかりました。誰でも私を助けることができますか?

回答:


89

はい、そうです。

おそらく必要なのは、それぞれが異なるポートを持つ複数の「サーバー」スタンザですが、おそらく(おそらく?)同じserver_nameで、各サーバー内で適切に「異なる」コンテンツを提供し、サーバーごとに異なるドキュメントルートを持つ場合があります。

完全なドキュメントはこちら:http : //nginx.org/en/docs/http/server_names.html

例:

server {
    listen       80;
    server_name  example.org  www.example.org;
    root         /var/www/port80/
}

server {
    listen       81;
    server_name  example.org  www.example.org;
    root         /var/www/port81/
}

グッドExplantion
billcyz

16
できないのは面倒listen 80 81;ですよね?まあ...
マット・フレッチャー

これは、似た何かをすることが可能である@MattFletcher、フェリックスさんのコメントを参照してください。serverfault.com/a/755791/308219
PaulMest

182

次のこともできます。

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}

2
これは素晴らしい。具体的には、一つだけのサーバコンテキストでサーバ設定を変更することができることは...他の未変更を危険にさらすものを変更し、去るよりもはるかに優れているようだ
アーロンSofaer

6
これは、@ billcyzが尋ねた質問には答えません。彼は異なったポートと異なったコンテンツを求めました。この答えは同じ内容で異なったポートを与えます。
アイザックサザーランド

@Krishnendu:「はるかに便利」?何より便利?これはOPの質問には答えません。その場合、:80と:8000の両方が同じコンテンツを指します。OPは、「ポート番号を変更すると、内容が異なるだろう」と明示的に尋ねました。だから、クレイグMiskellからの投稿は、これより質問へのより良い答え
cedbeu

3
@cedbeu:はい、あなたはクレイグ・ミスケルに尋ねた質問の文脈では正しいと思います。答えはより適切です。複数のポートで同じコンテンツを提供する必要がある他のソリューションを探していました。これがまさに私が必要としていたものでした。ここでも、与えられた質問に対して他のansがより適切であると尋ねられました。
クリシュネンドゥ

@Krishnendu問題ありません:)すべてが明確になりました
cedbeu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.