Utilice un servidor nginx diferente para diferentes dominios .local

Utilice un servidor nginx diferente para diferentes dominios .local

Estoy intentando ejecutar diferentes servidores en diferentes .localdominios en mi RPi. Este es mi nginx default.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;
    server_name raspberrypi.local;
}

/etc/hostsarchivo -

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1       raspberrypi

Ahora usando avahi-publishle puse un alias a otro dominio

avahi-publish -a -R foo.local 192.168.68.120

Pero cuando accedo a este dominio, también muestra el html predeterminado de nginx, que no quiero. Entiendo que todavía no he configurado ningún otro servidor que se ejecute en ese dominio, pero espero que no pueda conectarse o que sea inalcanzable.

Si eso no es posible, ¿hay alguna manera de tener varios .localnombres de dominio que no sean alias?

Respuesta1

Pero cuando accedo a este dominio, también muestra el html predeterminado de nginx, que no quiero. Entiendo que todavía no he configurado ningún otro servidor que se ejecute en ese dominio, pero espero que no pueda conectarse o que sea inalcanzable.

No obtendrá el mensaje "no se puede conectar" porque configuró Nginx para escuchartododirecciones para este servidor – eso es lo que listen *:80significa aquí; si está escuchando en 0.0.0.0aka *, aceptará conexiones realizadas a cualquier dirección IPv4 local. ( [::]Hace lo mismo para IPv6).

(La server_nameopción no influye en esto; todo lo que hace es seleccionar el bloque server{} correcto según el encabezado HTTP 'Host' en la solicitud recibida.despuésla conexión ha sido establecida. En otras palabras, implementa hosts virtuales basados ​​en nombres, en lugar de basados ​​en IP).

Si desea que los hosts virtuales estén basados ​​en IP, cambie los bloques de su servidor{} para escuchar en direcciones IP específicas en lugar de la dirección comodín:

server {
    listen 192.168.68.xxx:80;
}

Tenga en cuenta que esto fallará si Nginx se inicia antes de que se haya asignado la dirección a una interfaz. (Esto podría evitarse usandoIP_FREEBINDpero parece que Nginx aún no lo admite).

información relacionada