Ist es möglich, Nginx dazu zu bringen, verschiedene Ports abzuhören?

82

Ich habe ein Nginx mit einer Linux Azure-VM erstellt. Es ist möglich, Nginx dazu zu bringen, verschiedene Ports abzuhören, sodass der Inhalt beim Ändern der Portnummer unterschiedlich ist. Ich habe festgestellt, dass es zu einer Kollision kommen würde, wenn ich zwei oder mehr Ports für HTTP auf VM erstellt hätte. Kann mir jemand dabei helfen?

billcyz
quelle

Antworten:

89

Ja ist es.

Was Sie wahrscheinlich wollen, sind mehrere "Server" -Stanzas, jede mit einem anderen Port, aber möglicherweise (wahrscheinlich?) Demselben Servernamen, der den "anderen" Inhalt in jedem Server entsprechend bereitstellt, möglicherweise mit einem anderen Dokumentenstamm in jedem Server.

Die vollständige Dokumentation finden Sie hier: http://nginx.org/en/docs/http/server_names.html

Beispiel:

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/
}
Craig Miskell
quelle
Gute Explantion
billcyz
16
Es ist ärgerlich, dass man listen 80 81;es nicht kann, oder? Na ja ...
Matt Fletcher
@MattFletcher Es ist möglich, etwas Ähnliches zu tun, siehe Felix 'Kommentar: serverfault.com/a/755791/308219
PaulMest
182

Sie können auch Folgendes tun:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
Felix
quelle
2
Das ist toll. Insbesondere in der Lage zu sein, die Serverkonfiguration in nur einem Serverkontext zu ändern, scheint weitaus besser zu sein, als das Risiko
Aaron Sofaer
6
Dies beantwortet die von @billcyz gestellte Frage nicht. Er fragte nach verschiedenen Ports und unterschiedlichen Inhalten . Diese Antwort gibt verschiedene Ports mit dem gleichen Inhalt .
Isaac Sutherland
@Krishnendu: "viel bequemer"? bequemer als was? Dies beantwortet die OP-Frage nicht. In diesem Fall verweisen sowohl: 80 als auch: 8000 auf denselben Inhalt. OP fragte explizit "Wenn ich die Portnummer ändere, würde der Inhalt anders sein". Also, die Post von Craig Miskell beantwortet die Frage viel besser als diese
Cedbeu
3
@cedbeu: Ja du hast recht im Kontext der gestellten Frage Craig Miskells Antwort ist passender. Ich war auf der Suche nach einer anderen Lösung, bei der ich denselben Inhalt an mehreren Ports bereitstellen muss. Genau das war es, was ich brauchte. Nochmals zu gegebener Frage gestellt, andere Ans ist angemessener. Sorry, wenn ich jemanden irreführe. Es war ein ehrlicher Fehler von meiner Seite.
Krishnendu
@Krishnendu kein Problem :) alles jetzt geklärt
Cedbeu