Mientras configuraba este sitio, quería trabajar en posts y modificar el diseño antes de lanzarlo al público, por lo que necesitaba una forma simple de mantener alejados a todos los demás hasta que todo estuviera listo para funcionar. Entonces utilicé la función de control de acceso nginx para lograrlo.
Hubiera sido más seguro configurar nginx HTTP Auth en su lugar y solicitar un nombre de usuario y contraseña, y eso además me habría permitido utilizar más fácilmente mis dispositivos móviles para ingresar al sitio. Pero si en algún momento usó la autenticación HTTP, sabrá que es extremadamente molesto, especialmente en dispositivos móviles, tener que ingresar sus credenciales todo el tiempo.
Entonces, en su lugar, utilicé una regla de permiso de dirección IP simple para la IP de mi oficina y bloqueé todo lo demás.
Abra su archivo nginx.conf (o cualquier archivo de configuración nginx que esté usando para su sitio en particular) y agregue lo siguiente a su bloque de servidor o un bloque de ubicación específico, dependiendo de qué tan granular desee obtener con el bloque.
Para permitir una gama de direcciones IP:
allow 10.1.1.0/24;
O para permitir solo una IP:
allow 10.1.1.2
Y después debajo de eso, para bloquear a todos los demás:
deny all;
Por eso, terminará con un servidor o un bloque de ubicación que se parece a esto:
server { listen 80; server_name www.systempeaker.com; allow 10.1.1.2; deny all;
Verdaderamente es tan simple como eso. Ahora querrá volver a cargar su servidor nginx, lo que puede hacer con este comando para servidores Ubuntu o Debian:
service nginx reload
O puede recargar de forma directa usando el ejecutable nginx, asumiendo que está ubicado en el mismo lugar que el mío (ajuste la ruta caso contrario)
/usr/local/nginx/sbin/nginx -s reload
El argumento -s le dice a nginx que va a enviar una «señal» y que la señal es «recargar», que recarga el servidor con gracia sin causar muchos problemas.