Quiero restringir el acceso a algunos VHosts para que solo 127.0.0.1 pueda acceder a él. Siempre usé algo como esto para vincular el VHost al localhost y no a la IP externa:
server {
listen 127.0.0.1;
server_name myvhost.local;
location / {
....
}
}
Pero noté que algunos tutoriales también incluyen allowdirectivas explícitas para el host local y niegan explícitamente a todos los demás:
server {
listen 127.0.0.1;
server_name myvhost.local;
location / {
allow 127.0.0.1;
deny all;
...
}
}
Son estos allow/ denydirectivas realmente necesarios cuando ya escuchar sólo a 127.0.0.1?

allow 127.0.0.1/32;allowporque me puse alistenhacerlo127.0.0.1.Respuestas:
La
listendirectiva le dice al sistema operativo en qué interfaz se une el servidor web. Entonces, cuando observanetstat -adespués de iniciar nginx, verá que nginx solo escucha en el puerto IP 127.0.0.1 80, lo que significa que no se puede acceder al servidor nginx a través de ninguna otra interfaz.El enlace a una dirección IP específica funciona en un nivel inferior en la pila de red real que las directivas
allow/denydentro de la configuración de nginx.Esto significa que no necesita directivas
allow/ separacionesdenydentro de su configuración con su caso de uso, porque las conexiones están limitadas en la pila de red.Si
listen 80;solo especifica , y usaallow/denydirectivas, nginx enviará un código de error HTTP al cliente, indicando que el acceso es denegado.Con el
listen 127.0.0.1;caso, el navegador no puede conectarse al servidor en absoluto, porque no hay un puerto TCP abierto para que el navegador se conecte.fuente
netstatmuestra una dirección local de0.0.0.0:80(todas las interfaces). ¿Puedo entonces omitirdeny/allowen los servidores solo locales?listen 80 default_server;directiva cuando un cliente solicita un vhost vinculado127.0.0.1:80. Si no tiene undefault_serverdefinido, mostrará un servidor que lo halisten 80;definido.listen 127.0.0.1servidores y yo ni siquiera los necesitoallow/denyen estos servidores?Digamos que su ID de red es
192.168.1.0, edite su archivo conf de esta manera:Por favor déjame saber como funciona esto para ti.
Editar # 1:
Sí, la directiva de permiso es imprescindible según el wiki oficial de Nginx . Su ejemplo es:
fuente
127.0.0.1;) Mi pregunta es si lo necesitoallowen absoluto, porque yo ya puselistena127.0.0.1.Quería lograr la misma funcionalidad (permitir solo usuarios locales en nginx) y descubrí que puedo hacer algo simple como esto:
Este archivo de configuración funciona bien para mí, no estoy usando ninguna
allowdirectiva, sino solo127.0.0.1:80, ¡y con eso puedo restringir el acceso nginx solo a usuarios locales!fuente