25 comandos de Nginx que deben conocer los desarrolladores y administradores

Nginx es uno de los servidores web más populares entre usuarios de debido a su rico conjunto de funciones y su flexibilidad superior. Si es un desarrollador web, es probable que esté trabajando con Nginx o con el servidor Apache. Por lo tanto, es esencial tener una comprensión profunda de cómo funciona Nginx desde la línea de comandos. Afortunadamente, puede aumentar sus habilidades de DevOps dominando algunos comandos de Nginx. Nuestros editores han seleccionado estos comandos de uso frecuente para usted y han proporcionado una discusión completa para los administradores de Linux que comienzan. Continúe leyendo para obtener más información sobre estos comandos.

Comandos de Nginx útiles para administradores de Linux

A diferencia de muchos servidores web, Nginx se ocupa de la configuración del servidor utilizando únicamente el archivo de configuración. Por lo tanto, solo hay unos pocos parámetros de línea de comandos que puede utilizar. Esto es útil ya que los administradores pueden encontrar rápidamente los comandos que están buscando. A continuación se muestran algunos comandos de Nginx ampliamente utilizados que puede usar hoy.

Instalación del servidor web Nginx en Linux

Nginx ofrece varios paquetes de instalación para diferentes versiones de Linux. Puedes encontrarlos aquí . También puede instalar Nginx directamente usando su administrador de paquetes, como se ilustra a continuación.

$ sudo apt install nginx                                # Ubuntu
$ sudo dnf install nginx                                # Fedora
$ sudo yum install epel-release && yum install nginx    # RHEL and CentOS

También es posible compilar Nginx desde la fuente. Encontrará detalles sobre eso en esta guía .

comandos de instalación de nginx

1. Inicie el servidor Nginx

Es muy fácil iniciar el servidor web Nginx, como se muestra a continuación. Simplemente use uno de los siguientes comandos para invocar el servidor web estándar.

$ sudo service nginx start

Cuando emite este comando, el script de inicio de System V inicia Nginx. Si está ejecutando Nginx desde un sistema basado en systemd como Ubuntu Linux 16.04LTS y superior, deberá usar el siguiente comando.

$ sudo systemctl start nginx

Debería obtener una respuesta que muestre si el servidor se inició correctamente o no. Otro método simple pero efectivo es llamar a Nginx directamente usando la ruta binaria, como se muestra a continuación.

$ sudo /usr/bin/nginx

2. Detenga el servidor Nginx

También puede detener un servidor Nginx en ejecución utilizando métodos similares a los que se muestran arriba. Sin embargo, recuerde que cuando detiene un servidor Nginx en ejecución, todos los procesos del sistema asociados con él se eliminan. Terminará incluso si tiene conexiones activas.

$ sudo service nginx stop

Este comando detendrá el proceso de Nginx en los sistemas que usan el script de inicio de System V. Para máquinas basadas en systemd, se puede utilizar el siguiente comando.

$ sudo systemctl stop nginx

Sin embargo, estos comandos aún pueden llevar una cantidad considerable de tiempo en servidores ocupados. El siguiente comando demuestra cómo detener el servicio Nginx de una manera más rápida.

$ sudo killall -9 nginx

3. Salga del servidor Nginx

Salir de un servidor Nginx es similar a detener uno, con una diferencia clara. El demonio Nginx adopta un enfoque elegante para salir en el sentido de que no interrumpirá ninguna conexión activa. Por lo tanto, las solicitudes de sus clientes se atenderán como se esperaba antes de cerrar.

$ sudo service nginx quit

Utilice este comando para salir de su servidor Nginx desde . Los usuarios que ejecutan una máquina basada en systemd pueden utilizar el siguiente comando para hacer este trabajo.

$ sudo systemctl quit nginx

También puede utilizar uno de los siguientes comandos de Nginx para salir de un servidor en ejecución.

$ sudo nginx -s quit
$ sudo kill -QUIT $( cat /usr/local/nginx/logs/nginx.pid )

4. Reinicie el servidor Nginx

Cuando reinicia el servidor, el proceso de Nginx simplemente se detiene y luego comienza de nuevo. Puede usar uno de los siguientes comandos para reiniciar su demonio Nginx desde la línea de comandos.

$ sudo service nginx restart

Este comando reiniciará el servidor Nginx usando el script de inicio de System V. Puede usar systemctl para hacer esto en un sistema basado en systemd como las versiones más recientes de Ubuntu.

$ sudo systemctl restart nginx

También puede hacer esto de una manera diferente, como se muestra en el siguiente ejemplo.

$ sudo /etc/init.d/nginx restart

Si ha compilado Nginx desde la fuente, puede usar el siguiente comando.

$ sudo /usr/local/nginx/sbin/nginx -s restart

5. Vuelva a cargar el servidor Nginx

Recargar un servidor Nginx difiere ligeramente de reiniciar uno. Cuando recarga un servidor, Nginx se apagará de manera elegante. Lo que esto significa es que el demonio Nginx primero terminará, luego analizará el archivo de configuración en busca de cambios intentados e iniciará el nuevo proceso de trabajo sin interrumpir las operaciones.

$ sudo service nginx reload
$ sudo systemctl status nginx

El primer comando usa el script de inicio de System V, mientras que el último comando es para distribuciones de Linux basadas en systemd. También puede invocar la siguiente secuencia de comandos para realizar este trabajo.

$ sudo /etc/init.d/nginx reload

Debe usar el siguiente comando si ha compilado Nginx desde el código fuente.

$ sudo /usr/local/nginx/sbin/nginx -s reload

El siguiente comando es otra forma práctica de reiniciar con gracia su servidor Nginx.

$ sudo nginx -s reload

6. Verifique el estado de Nginx

A veces, es posible que desee ver el estado actual de su servidor Nginx antes de realizar cualquier operación en ellos. Esto se puede hacer muy rápidamente usando uno de los siguientes comandos. Recuerde sudo su comando o cambie al usuario root.

$ sudo service nginx status

Como se muestra en algunos comandos anteriores, este comando funciona al inicializar el script de inicio de System V. Puede usar el siguiente comando para sistemas que usan systemd en su lugar.

$ systemctl status nginx

Otra forma de hacer esto sería usar el script Nginx init.d directamente, como lo demuestra el siguiente comando.

$ sudo /etc/init.d/nginx status

Si Nginx se compila a partir del código fuente, entonces el siguiente comando.

$ sudo /usr/local/nginx/sbin/nginx -s status

7. Verifique la configuración de Nginx

Dado que existe , los administradores de red a menudo necesitan modificar el archivo de configuración para agregar / desbloquear nuevas funciones. Sin embargo, siempre debe probar su archivo de configuración para detectar posibles errores. De lo contrario, los usuarios malintencionados podrían aprovechar las fallas en la configuración de su servidor.

$ sudo nginx -t

Este es un comando simple que hace este trabajo por usted. Cuando ejecuta esto, básicamente le está diciendo a Nginx que verifique el archivo de configuración en busca de errores de sintaxis y se abstenga de ejecutar el servidor. Puede utilizar el siguiente comando para volcar el resultado de la prueba de configuración en la consola de su terminal.

$ sudo nginx -T

También puede utilizar uno de los siguientes comandos de Nginx para probar la configuración de su servidor Nginx.

$ sudo service nginx configtest   # System V Init
$ sudo systemctl config nginx     # systemd-based

configuración nginx

8. Envíe señales a Nginx

Los administradores pueden enviar varias señales útiles al demonio Nginx. Deberá usar la marca -s para enviar una señal a Nginx, seguida de la señal real. Ya habíamos visto señales en acción cuando lo usamos para salir y recargar nuestro servidor Nginx. Aquí, los especificamos en orden.

$ sudo nginx -s stop     # stops a running Nginx server
$ sudo nginx -s quit     # quits Nginx server
$ sudo nginx -s reload   # gracefully restarts Nginx
$ sudo nginx -s reopen   # reopens server log file

Sin embargo, su versión de Nginx debe ser al menos 0.7.53 o más. De lo contrario, no puede enviar señales a sus procesos de Nginx.

9. Mostrar información de la versión de Nginx

Algunas funciones más nuevas de Nginx solo están disponibles para versiones recientes. Por lo tanto, los administradores pueden enfrentar algunos problemas de compatibilidad en servidores heredados. Puede determinar fácilmente su versión de Nginx para ver si sus problemas tienen algo que ver con la versión del servidor o no.

$ sudo service nginx -v       # uses System V Init
$ sudo systemctl -v nginx     # for systemd-based distributions

Los siguientes comandos se pueden utilizar para mostrar información adicional sobre su instalación de Nginx, como las variables de configuración y la versión del compilador.

$ sudo service nginx -V
$ sudo systemctl -V nginx

Además, si está ejecutando un Ubuntu o , puede usar el siguiente comando para averiguar su versión de Nginx.

$ sudo apt-cache policy nginx

10. Mostrar página de ayuda

La página de ayuda de Nginx es un gran punto de referencia tanto para principiantes como para administradores experimentados de Linux. Puede usar uno de los siguientes comandos de Nginx para ver esta referencia desde el .

$ sudo service nginx -h     # uses System V Init
$ sudo systemctl -h nginx   # for systemd-based distributions

También puede utilizar los siguientes comandos para realizar este trabajo.

$ sudo service nginx -?     # uses System V Init
$ sudo systemctl -? nginx   # for systemd-based distributions

Hacer referencia a la página de ayuda es siempre una excelente opción, ya que permiten vislumbrar rápidamente las opciones disponibles para el usuario.

11. Utilice una configuración alternativa

Existe una lista interminable de de . Los administradores pueden modificar fácilmente el archivo de configuración de Nginx para agregar funcionalidades adicionales a su servidor. El archivo de configuración predeterminado de Nginx en la mayoría de los sistemas es /etc/nginx/nginx.conf . Sin embargo, a menudo es una buena práctica implementar primero sus personalizaciones en un archivo de configuración alternativo.

$ sudo nginx -c ~/test.conf

Tenga en cuenta que asumimos que su nuevo archivo de configuración se llama test.conf. Sustituya esta parte por el nombre real de su archivo de configuración. Ahora puede probar sus nuevas configuraciones usando el siguiente comando.

$ sudo nginx -t -c ~/test.conf

También puede indicarle a Nginx que busque la configuración predeterminada en un directorio diferente al compilar desde la fuente. Simplemente pase este directorio al configurar la instalación.

# ./configure --conf-path=/etc/some/other/nginx.conf

12. Suprima los mensajes que no sean de error

Es normal recibir mensajes de error cuando está probando nuevas configuraciones. Sin embargo, también obtendrá mucha información irrelevante al verificar sus personalizaciones. Afortunadamente, el demonio Nginx ofrece una opción simple para suprimir estos mensajes que no son de error, como se muestra a continuación.

$ sudo nginx -q -t -c ~/test.conf

Este comando probará un archivo de configuración personalizado llamado test.conf y omitirá información innecesaria de la salida. Es muy útil para tareas de administración de servidores remotos.

13. Cambiar la directiva global

La directiva global contiene todos los parámetros de configuración disponibles para su servidor Nginx. Es una de las secciones más sensibles de su servidor web y requiere una atención seria. La opción -g permite a los administradores definir directivas Nginx personalizadas para sus servidores web.

$ sudo nginx -g "pid /var/run/test.pid; worker_processes 2;"

Este comando especifica las directivas globales de Nginx para PID y define el número de procesos de trabajo, 2 en este caso. Ahora podemos probar esto usando el archivo de configuración alternativo usado anteriormente.

$ sudo nginx -t -c ~/test.conf -g "pid /var/run/test.pid; worker_processes 2;"

14. Cambiar la ruta del prefijo de Nginx

La ruta del prefijo contiene todos los archivos utilizados por su servidor web Nginx. También es el mismo directorio que se utiliza al configurar para establecer las rutas relativas (excepto las fuentes de la biblioteca). De forma predeterminada, Nginx usa el directorio / usr / local / nginx como prefijo. El siguiente comando demuestra cómo podemos anular esto desde la línea de comandos.

$ sudo nginx -p /path/to/new/prefix

La bandera -p nos permite pasar la nueva ubicación del prefijo. A menudo resulta útil cuando se prueban nuevos servidores. Sin embargo, esta opción no está disponible para servidores Nginx anteriores a la versión 0.7.53.

15. Verifique el módulo stub_status

El módulo stub_status expone algunas métricas muy importantes sobre Nginx. Los administradores a menudo lo usan para monitorear sus o servidores proxy. Aunque todos los binarios Nginx preconstruidos vienen con este módulo, es posible que su servidor Nginx no lo tenga si ha compilado Nginx desde la fuente. Puede usar el siguiente comando para probar si lo tiene o no.

$ sudo nginx -V 2>&1 | grep --color -- --with-http_stub_status_module

Si descubre que le falta este módulo, siempre puede reconstruir Nginx desde la fuente. Simplemente incluya el parámetro –with-http_stub_status_module cuando configure Nginx, como se muestra a continuación.

$ ./configure --with-http_stub_status_module

módulo stub_status

16. Compruebe la ruta de Nginx

Hay varios comandos de Nginx para verificar la ruta de su instalación de Nginx. Al igual que , siempre puede usar el comando which / whereis para verificar la ruta de Nginx.

$ which nginx
$ whereis nginx

Los comandos anteriores mostrarán todas las ubicaciones del sistema que contienen archivos relacionados con su configuración de Nginx. Puede hacer esto de otra manera usando el comando ps y haciendo grepping para obtener la información requerida.

$ ps aux | grep nginx

Ahora debería ver claramente la ubicación de su demonio Nginx. Esto es muy útil para los desarrolladores que no tienen privilegios de bajo nivel en la máquina del servidor.

17. Ubique Nginx PID

El PID o ID de proceso es un número único que se utiliza para distinguir procesos en . Podemos enviar varias señales a nuestro servidor Nginx utilizando el PID apropiado. Este PID se puede encontrar usando uno de los siguientes comandos.

$ ps aux | grep [n]ginx
$ pgrep nginx
$ cat /run/nginx.pid

Entonces podemos usar pgrep o el comando vanilla grep junto con ps. No se preocupe si no comprende cómo funciona “grep”. Ya hemos publicado .

18. Buscar archivos de registro

Los archivos de registro contienen mucha información valiosa tanto para los administradores del sistema como para los desarrolladores. Nginx tiene dos archivos de registro predeterminados que consisten en los documentos access.log y error.log . Estos se encuentran en / var / log y se pueden ver usando el siguiente comando.

$ ls /var/log/nginx/*.log

Ahora debería ver los archivos de registro mencionados anteriormente. Como sugiere su nombre, access.log contiene información sobre los visitantes de su sitio y error.log contiene advertencias / detalles sobre configuraciones incorrectas . Sin embargo, deberá habilitar estos dos registros desde su archivo de configuración de Nginx antes de poder usarlos.

19. Establecer hosts virtuales

Los hosts virtuales permiten a los administradores del servidor ejecutar más de un sitio web en una sola máquina servidor. Esto suele ser útil, ya que puede compartir sus procesos informáticos para ejecutar varios sitios al mismo tiempo. Sin embargo, el término host virtual generalmente se asocia con servidores Apache. Se conocen como ” Bloques de servidor ” en el mundo Nginx.

$ sudo ln -s /etc/nginx/sites-available/YOURSITE.com /etc/nginx/sites-enabled/YOURSITE.com

Puede habilitar fácilmente hosts virtuales en un servidor Nginx usando este simple enlace simbólico. Simplemente elimine el enlace simbólico si desea deshabilitar los hosts virtuales.

20. Ver módulos compilados de Nginx

Como ha visto en algunos comandos anteriores de Nginx, cuando instala el demonio, también se instalan algunos módulos esenciales. Podemos ver fácilmente estos módulos de Nginx usando el siguiente comando.

$ sudo 2>&1 nginx -V | tr -- - '\n' | grep _module

Este comando aprovecha varias herramientas de línea de comandos de Linux y filtra la información irrelevante para mostrar solo los módulos. Dado que Nginx tiene una gran cantidad de módulos, este comando puede ser útil para verificar qué módulos están compilados para su servidor.

21. Habilitar / deshabilitar el servicio Nginx

Habilitar el servicio Nginx permite que el servidor se inicie automáticamente durante el tiempo de inicio. Es esencial para servidores dedicados porque, de lo contrario, las solicitudes de los usuarios podrían interrumpirse. Podemos habilitar fácilmente Nginx para que se inicie automáticamente usando el siguiente comando.

$ sudo service nginx enable     # System V Init
$ sudo systemctl enable nginx   # systemd-based systems

Estos comandos simples pero efectivos se asegurarán de que el tiempo de inactividad de su servidor se reduzca tanto como sea posible. También puede desactivar el inicio automático si lo desea. Simplemente use uno de los siguientes comandos.

$ sudo update-rc.d -f nginx disable
$ sudo systemctl disable nginx

22. Actualice Nginx sobre la marcha

Nginx permite a los administradores actualizar el archivo binario y / o de configuración sobre la marcha. Esto significa que las solicitudes de sus clientes no se interrumpirán debido a las actualizaciones del servidor. Para hacer esto, primero, necesitamos ubicar el PID del proceso maestro de Nginx. Podemos hacerlo usando un comando simple que ya hemos demostrado.

$ cat /run/nginx.pid

Su nuevo binario de Nginx ya debería estar listo. Genere un nuevo conjunto de procesos maestro / trabajador de Nginx que usan el nuevo binario a través del siguiente comando.

$ sudo kill -s USR2 `cat /run/nginx.pid`

Ahora elimine los procesos de trabajo utilizados por el primer proceso maestro con el siguiente comando.

$ sudo kill -s WINCH `cat /run/nginx.pid.oldbin`

Sígalo matando el viejo proceso maestro.

$ sudo kill -s QUIT `cat /run/nginx.pid.oldbin`

23. Configurar Nginx en la cárcel de Chroot

Una cárcel chroot para su servidor Nginx proporcionará una capa adicional de seguridad en caso de posibles robos. Los administradores suelen utilizar esta técnica para asegurarse de que sus servidores estén aislados y seguros en una pequeña sección del . Utilice los siguientes comandos para configurar su servidor Nginx dentro de una cárcel chroot.

# D=/nginx
# mkdir -p $D
# mkdir -p $D/etc
# mkdir -p $D/dev
# mkdir -p $D/var
# mkdir -p $D/usr
# mkdir -p $D/usr/local/nginx
# mkdir -p $D/tmp
# chmod 1777 $D/tmp
# mkdir -p $D/var/tmp
# chmod 1777 $D/var/tmp
# mkdir -p $D/lib64
# ls -l /dev/{null,random,urandom}
# /bin/cp -farv /usr/local/nginx/* $D/usr/local/nginx

Deberá ejecutarlos como root. Ahora descubra las bibliotecas compartidas usando el siguiente comando.

# ldd /usr/local/nginx/sbin/nginx

Copie todas las bibliotecas una por una, como se muestra a continuación.

# cp /lib64/libpcre.so.0 $D/lib64

También necesitará copiar / etc y algunos otros directorios también.

# cp -fv /etc/{group,prelink.cache,services,adjtime,shells,gshadow,shadow,hosts.deny,localtime,nsswitch.conf,nscd.conf,prelink.conf,protocols,hosts,passwd,ld.so.cache,ld.so.conf,resolv.conf,host.conf} $D/etc

# cp -avr /etc/{ld.so.conf.d,prelink.conf.d} $D/etc

Su cárcel chroot ahora está lista para Nginx. Simplemente elimine el servicio anterior e inicie el nuevo con el siguiente comando.

# /usr/sbin/chroot /nginx /usr/local/nginx/sbin/nginx -t

24. Ejecute Nginx dentro de Docker

Los contenedores Docker se han vuelto extremadamente populares debido a su flexibilidad y rendimiento robusto. Puede crear y ejecutar fácilmente su servidor web Nginx desde dentro de un contenedor docker. El siguiente comando extrae la imagen oficial de Nginx y crea una instancia de servidor con la configuración predeterminada.

$ docker run --name nginx-server -P -d nginx

Puede mantener el almacenamiento persistente con el siguiente comando simple.

$ sudo docker run --name nginx-server -v /var/www:/usr/share/nginx/html:ro \

-v /var/nginx/conf:/etc/nginx:ro -P -d nginx

Puede encontrar más . Eche un vistazo si está buscando información específica de la ventana acoplable.

25. Ejecute Nginx dentro de LXD

LXD es aclamado como el contenedor de Linux de próxima generación y ofrece un asombroso conjunto de características. También puede usar Nginx a través de contenedores LXD. Eche un vistazo a los siguientes comandos de Nginx para LXD.

$ sudo lxc launch ubuntu:18.04 nginx-server
$ sudo lxc exec nginx-server -- sudo --user ubuntu --login
$ sudo apt update
$ sudo apt install -y nginx
$ sudo systemctl reload nginx

Primero, creamos un contenedor llamado nginx-server y luego iniciamos un shell en ese contenedor. Luego, actualizamos la lista de paquetes e instalamos el servidor web Nginx dentro de ese contenedor. El último comando simplemente recarga el servidor.

Pensamientos finales

Hay muchas características sorprendentes que ofrece Nginx, y los nuevos usuarios a menudo se sienten abrumados por sus capacidades. Afortunadamente, puede ganar una confianza tremenda si solo conoce algunos comandos básicos de Nginx. Es por eso que nos tomamos la libertad de presentarle estos asombrosos comandos. Hemos cubierto no solo los comandos básicos, sino también algunos trucos de línea de comandos avanzados y más poderosos. Con suerte, sentirá más autoridad sobre sus habilidades de Nginx una vez que se haya acostumbrado a estos comandos. Háganos saber sus pensamientos en la sección de comentarios a continuación y siga visitando para obtener más guías sobre servidores Linux.

Leave a Comment

Your email address will not be published.