¿Es posible hacer que Nginx escuche diferentes puertos?

82

Creé un Nginx con una máquina virtual Linux Azure, ¿es posible hacer que nginx escuche diferentes puertos para que cuando cambie el número de puerto, el contenido sea diferente? Descubrí que habría una colisión si creara dos o más puertos relacionados con HTTP en VM. Alguien me puede ayudar con eso?

billcyz
fuente

Respuestas:

90

Sí lo es.

Lo que probablemente desee es tener varias secciones de "servidor", cada una con un puerto diferente, pero posiblemente (¿probablemente?) El mismo nombre_servidor, sirviendo el contenido "diferente" de manera apropiada dentro de cada una, tal vez con una raíz de documento diferente en cada servidor.

La documentación completa está aquí: http://nginx.org/en/docs/http/server_names.html

Ejemplo:

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
fuente
Good
Explantion
16
Es molesto que uno no pueda hacer, listen 80 81;¿no? Oh, bueno ...
Matt Fletcher
@MattFletcher Es posible hacer algo similar, vea el comentario de Felix: serverfault.com/a/755791/308219
PaulMest el
182

También puede hacer lo siguiente:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
Felix
fuente
2
Esto es genial. En particular, poder cambiar la configuración del servidor en un solo contexto de servidor parece muy superior a arriesgarse a cambiar uno y dejar el otro sin cambios ...
Aaron Sofaer
66
Esto no responde la pregunta hecha por @billcyz. Pidió puertos diferentes y contenido diferente . Esta respuesta da diferentes puertos con el mismo contenido .
Isaac Sutherland
@ Krishnendu: "mucho más conveniente"? ¿más conveniente que qué? Esto no responde la pregunta de OP. En ese caso, ambos: 80 y: 8000 apuntan al mismo contenido. OP preguntó explícitamente "cuando cambie el número de puerto, el contenido sería diferente". Entonces, la publicación de Craig Miskell responde mucho mejor a la pregunta que esta
cedbeu el
3
@cedbeu: Sí, tienes razón en el contexto de la pregunta que se hizo. La respuesta de Craig Miskell es más apropiada. Estaba buscando la otra solución donde necesito servir el mismo contenido en múltiples puertos, esto era exactamente lo que necesitaba. Una vez más, para la pregunta dada, otros ans son más apropiados. Perdón si engaño a alguien. Fue un error sincero de mi parte.
Krishnendu
@Krishnendu no hay problema :) todo aclarado ahora
cedbeu