É possível fazer o Nginx ouvir portas diferentes?

82

Criei um Nginx com uma VM do Azure Linux. É possível fazer com que o nginx escute portas diferentes para que, quando eu altere o número da porta, o conteúdo seja diferente. Descobri que haveria uma colisão se eu criasse duas ou mais portas relacionadas ao HTTP na VM. Alguém pode me ajudar com isso?

billcyz
fonte

Respostas:

89

Sim.

O que você provavelmente deseja são várias sub-rotinas de "servidor", cada uma com uma porta diferente, mas possivelmente (provavelmente?) O mesmo nome_do_servidor, servindo o conteúdo "diferente" adequadamente dentro de cada uma, talvez com uma raiz de documento diferente em cada servidor.

A documentação completa está aqui: http://nginx.org/en/docs/http/server_names.html

Exemplo:

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
fonte
Boa explicação
billcyz
16
É chato que não se pode fazer, listen 80 81;não é? Oh, bem ...
Matt Fletcher
@MattFletcher É possível fazer algo semelhante, consulte o comentário de Felix: serverfault.com/a/755791/308219
PaulMest 1/16/16
182

Você também pode fazer o seguinte:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
Felix
fonte
2
Isso é ótimo. Em particular, a possibilidade de alterar a configuração do servidor em apenas um contexto de servidor parece muito superior do que correr o risco de mudar um e deixando o outro inalterado ...
Aaron Sofaer
6
Isso não responde à pergunta feita por @billcyz. Ele pediu portas diferentes e conteúdo diferente . Esta resposta fornece portas diferentes com o mesmo conteúdo .
Isaac Sutherland
@ Krishnendu: "muito mais conveniente"? mais conveniente do que o que? Isso não responde à pergunta do OP. Nesse caso, ambos: 80 e: 8000 apontam para o mesmo conteúdo. O OP perguntou explicitamente "quando altero o número da porta, o conteúdo seria diferente". Então, post de Craig Miskell responde muito melhor para a questão do que este
cedbeu
3
@cedbeu: Sim, você está certo no contexto da pergunta feita por Craig Miskell, a resposta é mais apropriada. Eu estava procurando a outra solução em que eu precisava veicular o mesmo conteúdo em várias portas; era exatamente isso que eu precisava. Novamente, para uma pergunta dada a outros ans é mais apropriado, desculpe se eu enganar alguém, foi um erro honesto do meu lado.
Krishnendu 04/10/19
@Krishnendu no problem :) tudo esclarecido agora
cedbeu