Cómo instalar Nginx en Fedora 35

Nginx es un software de servidor HTTP gratuito y de código abierto. Además de sus capacidades de servidor HTTP, NGINX también puede funcionar como un servidor proxy para correo electrónico (IMAP, POP3 y SMTP) y un proxy inverso y equilibrador de carga para servidores HTTP, TCP y UDP.

El objetivo detrás de NGINX era crear el servidor web más rápido y mantener esa excelencia sigue siendo un objetivo central del proyecto Nginx. NGINX supera constantemente a Apache y otros servidores en los puntos de referencia que miden el rendimiento del servidor web y ahora es el servidor web utilizado más popular según W3Tech.

En el tutorial, aprenderá a instale y configure Nginx en Fedora 35 con un certificado TLS / SSL gratuito de Let's Encrypt.

Requisitos previos

  • SO recomendado: FedoraLinux 35
  • Cuenta de usuario: Una cuenta de usuario con acceso sudo o root.

Actualizar sistema operativo

Actualice su Fedora sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

Anuncio
sudo dnf upgrade --refresh -y

El tutorial utilizará el comando sudo y asumiendo que tienes el estado de sudo.

Anuncio

Para verificar el estado de sudo en su cuenta:

sudo whoami

Salida de ejemplo que muestra el estado de sudo:

[joshua@fedora ~]$ sudo whoami
root

Para configurar una cuenta sudo nueva o existente, visite nuestro tutorial en Agregar un usuario a Sudoers en Fedora.

Para utilizar el cuenta root, use el siguiente comando con la contraseña de root para iniciar sesión.

Anuncio
su

Instalar Nginx estable o Mainline

Instalar Nginx es muy fácil en las distribuciones de Fedora dadas las versiones semestrales, y su actualización constante de paquetes durante su tiempo significa que Nginx está, en su mayor parte, siempre actualizado.

Dado que Fedora está acostumbrado a tener los paquetes más actualizados, primero habilite el repositorio principal, que Nginx recomienda usar.

Anuncio
sudo dnf module enable nginx:mainline

Ejemplo de salida:

Cómo instalar Nginx en Fedora 35

Tipo Y, luego presione el INTRODUCIR CLAVE para continuar con la instalación.

A continuación, abra su terminal y ejecute el siguiente comando para comenzar el proceso de instalación.

Anuncio
sudo dnf install nginx

Ejemplo de salida:

Cómo instalar Nginx en Fedora 35

Tipo Y, luego presione el INTRODUCIR CLAVE para continuar con la instalación.

Una vez instalado, confirme la instalación verificando la versión de compilación de Nginx.

Anuncio
nginx -v

Salida de ejemplo (usando el ejemplo de la línea principal):

nginx version: nginx/1.21.3

De forma predeterminada, el servicio Nginx no está habilitado o activo una vez instalado. Para habilitar Nginx, use el siguiente comando.

Anuncio
sudo systemctl enable nginx --now

Ahora verifique el estado del servicio para confirmar que Nginx se está ejecutando sin errores.

systemctl status nginx

Ejemplo de salida:

Cómo instalar Nginx en Fedora 35

Como arriba, el estado debe ser activo (corriendo). En este punto, ha instalado la aplicación Nginx.

Configurar las reglas del cortafuegos

De forma predeterminada, la instalación no agrega automáticamente reglas de firewall al estándar puerto 80 o puerto 443 al instalar Nginx. Antes de continuar, debe establecer las siguientes reglas, esto dependerá de los puertos que utilice, pero se enumeran todas las opciones.

Anuncio

Abra el puerto 80 o HTTP:

Anuncio
sudo firewall-cmd --permanent --zone=public --add-service=http

Abra el puerto 443 o HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Vuelva a cargar el firewall para que los cambios surtan efecto

sudo firewall-cmd --reload

Configurar Nginx

Deberá tener la dirección IP del servidor lista para configurar. La forma más sencilla de hacer esto es con lo siguiente.

Vea también  Cómo instalar NixNote en Linux Mint 21 LTS

Encontrar la dirección IP del servidor

Deberá tener la dirección IP del servidor preparada para la configuración. La forma más sencilla de hacer esto es con lo siguiente.

curl -4 icanhazip.com

Ejemplo de salida:

Anuncio
Anuncio
XXX.XXX.XXX.XXX IP address

Si los comandos no funcionan, probablemente no tenga el paquete curl instalado. Ejecute el siguiente comando:

sudo dnf install curl -y

Una vez que tenga la dirección IP de su servidor, abra su navegador de Internet favorito y verifique que la página de destino predeterminada esté funcionando.

http://your_server_ip

Debería obtener la siguiente página en su navegador de Internet.

Ejemplo:

Cómo instalar Nginx en Fedora 35

Configurar el directorio de origen del sitio

En el tutorial, configurará un dominio llamado example.com, pero deberías reemplace esto con su nombre de dominio. El tutorial creará los directorios web y configurará los archivos del sitio en el directorio principal. / var / www /.

Anuncio

Primero, cree el directorio, para example.com, de la siguiente manera, utilizando el "-pag" flag para crear los directorios principales necesarios:

Anuncio
sudo mkdir -p /var/www/your_domain/html

En segundo lugar, deberá asignar el propietario del directorio.

sudo chown -R $USER:$USER /var/www/your_domain/html

En tercer lugar, asigne los permisos del directorio, de modo que el propietario lea, escriba y ejecute los archivos y otorgue solo permisos de lectura y ejecución a grupos y otros. Puede ingresar el siguiente comando:

sudo chmod -R 755 /var/www/your_domain

Alternativamente, puede utilizar la / usr / share / nginx / html directorio en su lugar, pero el / Var / www Se recomienda el método de directorio para nuevos usuarios.

Configurar página HTML de prueba

En cuarto lugar, cree una página de prueba que utilizará para confirmar que su servidor Nginx está operativo.

Anuncio
nano /var/www/your_domain/html/index.html

Dentro del editor nano y el nuevo archivo, ha creado. Introduzca la siguiente.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Guarda el archivo (CTRL + O), luego salir (CTRL + X).

Anuncio

Crear bloque de servidor Nginx

De forma predeterminada, el bloque del servidor Nginx, similar a los hosts virtuales Apache, se trata en el /etc/nginx/conf.d directorio. Sin embargo, la instalación de Nginx varía según las diferentes versiones y distribuciones que utilizan el conf.d or sitios disponibles / sitios habilitados por defecto. Para el tutorial, los directorios del sitio se utilizarán para mantener un estándar.

Primero, cree los directorios necesarios para sitios disponibles y sitios habilitados.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

A continuación, abra su archivo nginx.conf y elimine o comente el "Incluir /etc/nginx/default.d/*.conf;".

Anuncio
sudo nano /etc/nginx/nginx.conf

Luego, directamente debajo de él, agregue incluir "/Etc/nginx/sites-enabled/*.conf;".

Solo ejemplo:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

###EDIT HERE###
#  include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Como arriba, un "#" comentario fue agregado a incluir conf.d línea, y incluir sitios habilitados fue añadido.

Anuncio

Guarda el archivo (CTRL + O) y salir (CTRL + X).

A continuación, cree su archivo de configuración de bloque de servidor. El nombre your_domain.conf se usará para el tutorial, pero puede nombrarlo como prefiera.

Anuncio
sudo nano /etc/nginx/sites-available/your_domain.conf

Puede pegar el siguiente código de ejemplo en el bloque. Esto es solo un Ejemplo solo de HTTP para pruebas básicas.

server {

 listen 80;
 listen [::]:80;

 server_name your_domain www.your_domain;
 root /var/www/your_domain/html;

  index index.html index.htm;

 location / {
  try_files $uri $uri/ =404;
 }
}

El ejemplo muestra que su servidor está escuchando dos nombres de servidor, "Tu dominio" en el puerto 80.

Deberá cambiar el directorio raíz al nombre / ubicación del directorio raíz que creó.

Bloque de servidor Nginx habilitado

Debe vincular los archivos de configuración de los sitios disponibles a los sitios habilitados en su directorio Nginx para habilitar los bloques del servidor Nginx. Esto se puede hacer con el comando ln -s de la siguiente manera.

Anuncio
sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Configuración final y ejecución de prueba

En la etapa final, deberá abrir su nginx.conf archivo.

Anuncio
sudo nano /etc/nginx/nginx.conf

Y descomente la siguiente línea.

server_names_hash_bucket_size 64;

El tamaño del depósito de hash del nombre del servidor se cambia ya que a veces surgen problemas al agregar servidores adicionales.

Vea también  Cómo instalar el navegador LibreWolf en Fedora 37/36/35

A continuación, pruebe su Nginx para asegurarse de que funciona antes de reiniciar correctamente.

sudo nginx -t

La salida debería ser si no hay errores en la sintaxis:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si tiene el siguiente resultado ok, reinicie el servidor Nginx para que se realicen los cambios.

Anuncio
Anuncio
sudo systemctl restart nginx

Ahora abra su navegador de Internet y escriba el nombre de dominio del servidor. Debería ver que su bloque de servidor está activo.

Cómo instalar Nginx en Fedora 35

Asegure Nginx con Let's Encrypt SSL Free Certificate

Idealmente, querría ejecutar su Nginx en HTTPS usando un certificado SSL. La mejor forma de hacer esto es usar Vamos a cifrar una autoridad de certificación libre, automatizada y abierta dirigida por el Grupo de Investigación de Seguridad de Internet sin fines de lucro (ISRG).

Instale la paquete certbot como sigue:

sudo dnf install python3-certbot-nginx -y

Una vez instalado, ejecute el siguiente comando para iniciar la creación de su certificado:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Esta configuración ideal incluye redirecciones forzadas HTTPS 301, un encabezado de seguridad de transporte estricta y grapado OCSP. Solo asegúrese de ajustar el correo electrónico y el nombre de dominio a sus requisitos.

Anuncio

Ahora tu URL será HTTPS://www.ejemplo.com en lugar de HTTP://www.ejemplo.com.

Anuncio

Si usa el viejo URL HTTP, se redirigirá automáticamente a HTTPS.

Opcionalmente, puede configurar un trabajo cron para renovar los certificados automáticamente. Certbot ofrece un script que hace esto automáticamente, y primero puede probar para asegurarse de que todo funcione realizando una ejecución en seco.

sudo certbot renew --dry-run

Si todo está funcionando, abra su ventana crontab usando el siguiente comando de terminal.

sudo crontab -e

Por defecto, la mayoría de los sistemas Fedora no vienen con Cron instalado. Para instalarlo, utilice el siguiente comando.

Anuncio
sudo dnf install cronie -y

Abra el crontab con el siguiente comando.

sudo crontab -e

A continuación, especifique el momento en el que debe renovarse automáticamente. Esto debe comprobarse diariamente como mínimo y, si es necesario renovar el certificado, el script no actualizará el certificado. Si necesita ayuda para encontrar un buen momento para configurar, utilice el crontab.guru herramienta gratuita.

Anuncio
00 00 */1 * * /usr/sbin/certbot-auto renew

Ahora guarde el archivo presionando (CAMBIO) y (:) luego escribiendo (Washington), que guarda el archivo, luego sale con el mismo método usando (qa).

Debería ver el siguiente resultado en la terminal para ver si la adición de la nueva tarea fue exitosa.

crontab: installing new crontab

Administrar el servicio Nginx

Ahora que tiene Nginx ejecutándose correctamente en su servidor, algunas notas clave de administración son las siguientes.

Anuncio

Para detener el servidor web Nginx:

sudo systemctl stop nginx

Para iniciar el servidor web Nginx:

sudo systemctl start nginx

Para reiniciar el servidor web Nginx:

Anuncio
sudo systemctl restart nginx

Para recargar el servidor web Nginx (Para cambios menores que no requieren reinicio):

sudo systemctl reload nginx

Para deshabilitar Nginx en el arranque del servidor:

Anuncio
sudo systemctl disable nginx

Para iniciar Nginx en el arranque del servidor (Habilitado automáticamente en la instalación):

sudo systemctl enable nginx

Cómo acceder a los registros del servidor Nginx

Directorio de registros de Nginx

De forma predeterminada, todos los registros de acceso / error de NGINX, a menos que los haya cambiado, se encuentran en el directorio de registros, que puede ver el siguiente comando.

Vea también  Cómo instalar Skype en Fedora 37/36/35

Primero, navegue hasta el directorio de registros y enumere los archivos:

cd /var/log/nginx && ls -l

Debería encontrar los siguientes archivos de acceso y error:

Anuncio

Registro de acceso:

Anuncio
/var/log/nginx/access.log

Registro de errores:

/var/log/nginx/error.log

Para ver los registros en tiempo real en su terminal usando el comando sudo tail -f / location / of / log path.

Ejemplo:

sudo tail -f /var/log/nginx/access.log

Otra opción es imprimir las últimas X líneas. Por ejemplo, X se reemplaza con 30 para imprimir 30 líneas agregando el -n 30 bandera.

sudo tail -f /var/log/nginx/access.log -n 30

Estos son solo algunos ejemplos de registros de lectura, y grep también puede ser útil.

Anuncio
Anuncio

Cómo configurar Nginx Log Rotate

Nginx instala automáticamente la rotación de registros y la configura por defecto, que es rotar diariamente. Puede cambiar esta configuración accediendo al archivo como se muestra a continuación.

sudo nano /etc/logrotate.d/nginx

A continuación, verá la misma estructura de archivo, si no similar. Puede modificar el contenido aquí. En su mayoría, puede cambiar cuántos registros conservar o pasar de diario a semanal. Esto debe dejarse en el valor predeterminado a menos que tenga necesidades específicas de requisitos de registro para software como la supervisión de fail2ban o similar.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

La configuración principal que probablemente desee cambiar es la siguiente:

  • Diario - Esto se puede cambiar a Semanal, Mensual. Esto debe mantenerse a diario, de lo contrario será difícil revisar el archivo de registro.
  • Girar 14 - Esta es la cantidad de registros que se deben mantener y eliminar, por lo que como máximo solo hay 14 registros, si solo desea conservar los registros de 7 días, cambie esto a 7.

Se recomienda no tocar ninguna otra configuración a menos que sepa lo que está haciendo.

Cómo actualizar Nginx

Nginx se actualizará de forma predeterminada cuando una nueva versión llegue a los repositorios. Antes de actualizar, siempre se recomienda hacer una copia de seguridad de su directorio Nginx o, al menos, el nginx.conf expediente. Puede hacer cualquiera con el siguiente comando.

Anuncio

Haga una copia de seguridad de nginx.conf (muy recomendado):

Anuncio
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Haga una copia de seguridad de toda su carpeta Nginx si lo prefiere:

sudo cp /etc/nginx/ /etc/nginx-bkup

A continuación, ejecute el comando de actualización estándar.

sudo dnf upgrade --refresh

Si hay una actualización disponible, ejecútela.

Es posible que se le solicite esto durante una actualización o instalación, pero hacerlo manualmente de antemano es bastante esencial. Para configuraciones grandes de Nginx de varios sitios, realizar una copia de seguridad en algo como Github o Gitlab sería aún más beneficioso.

Anuncio

Cómo quitar (desinstalar) Nginx

Para eliminar Nginx si ya no lo usa, puede hacerlo usando el siguiente comando:

sudo dnf autoremove nginx

Este comando también eliminará las dependencias no utilizadas que vinieron con la instalación.

Anuncio

Para restablecer el módulo nginx de la línea principal a su valor predeterminado, use el siguiente comando.

sudo dnf modules reset nginx

Comentarios y Conclusión

En el tutorial, ha aprendido a instalar y configurar la configuración básica de Nginx en su dominio en la estación de trabajo o servidor Fedora 35, junto con la creación de un certificado SSL gratuito usando Let's Encrypt. En general, Nginx es el software de aplicación web más utilizado y popular en la actualidad, y cada mes y año lo supera tomando más participación de mercado de Apache.

Algunos nuevos contendientes están comenzando a aparecer, como Openlitespeed, pero dadas estas otras aplicaciones web, por ahora, céntrese en cosas específicas como WordPress. Nginx será la aplicación web de referencia durante algún tiempo.

Anuncio


¿No es lo que estabas buscando? Intente buscar tutoriales adicionales.

Deja un comentario