Czy można zmusić Nginx do słuchania różnych portów?

82

Utworzyłem jednego Nginx z jedną maszyną wirtualną z platformą Linux Azure, czy można zmusić nginx do słuchania różnych portów, aby po zmianie numeru portu zawartość była inna. Odkryłem, że doszło do kolizji, jeśli utworzyłem dwa lub więcej portów związanych z HTTP na maszynie wirtualnej. Czy ktoś może mi w tym pomóc?

billcyz
źródło

Odpowiedzi:

89

Tak to jest.

Prawdopodobnie chcesz wielu sekcji „serwerowych”, każda z innym portem, ale być może (prawdopodobnie?) Z tą samą nazwą serwera, obsługujących odpowiednio „inną” treść w każdym z nich, być może z innym katalogiem głównym na każdym serwerze.

Pełna dokumentacja znajduje się tutaj: http://nginx.org/en/docs/http/server_names.html

Przykład:

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
źródło
Good Explantion
billcyz
16
To denerwujące, że nie da się tego zrobić, listen 80 81;prawda? No cóż ...
Matt Fletcher
@MattFletcher Można zrobić coś podobnego, patrz komentarz Felixa: serverfault.com/a/755791/308219
PaulMest
182

Możesz także wykonać następujące czynności:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
Felix
źródło
2
To jest świetne. W szczególności możliwość zmiany konfiguracji serwera tylko w jednym kontekście serwera wydaje się znacznie lepsza niż zaryzykowanie zmiany jednego i pozostawienie drugiego bez zmian ...
Aaron Sofaer
6
To nie odpowiada na pytanie zadane przez @billcyz. Poprosił o różne porty i inną zawartość . Ta odpowiedź daje różne porty o tej samej treści .
Isaac Sutherland,
@Krishnendu: „znacznie wygodniej”? wygodniejszy niż co? To nie odpowiada na pytanie OP. W takim przypadku zarówno: 80, jak i: 8000 wskazują na tę samą treść. OP zapytał wprost: „kiedy zmienię numer portu, treść będzie inna”. Tak więc post Craiga Miskella odpowiada na to pytanie znacznie lepiej niż to
cedbeu,
3
@cedbeu: Tak, masz rację w kontekście pytania zadanego Craig Miskell odpowiedź jest bardziej odpowiednia. Szukałem innego rozwiązania, w którym muszę obsługiwać tę samą zawartość na wielu portach, dokładnie tego potrzebowałem. Ponownie dla zadanego pytania inna odpowiedź jest bardziej odpowiednia. Przepraszam, jeśli kogoś wprowadzę w błąd, To był uczciwy błąd z mojej strony.
Krishnendu,
@Krishnendu bez problemu :) wszystko wyjaśnione teraz
cedbeu