GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale Nginx y configure el host virtual en Ubuntu 20.04

En esta guía, exploraremos cómo usar nginx en Ubuntu 20.04, es decir, instalar nginx y configurar nginx para servir un sitio virtual.

Instalación de Nginx

actualizar nuestro índice de paquetes locales para que tengamos acceso a las listas de paquetes más recientes

sudo apt update

Instalar nginx

sudo apt install nginx

Actualizar cortafuegos

Lista de aplicaciones ufw disponibles:

sudo ufw app list

Salida de muestra:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Los perfiles de Nginx enumerados:

  • Nginx Full – Ambos http – 80 y https – 443
  • Nginx HTTP – solo tráfico http 80
  • Nginx HTTPS – Solo tráfico https 443 – TLS/SSL tráfico encriptado

Habilite el perfil que desee, tanto http como https en nuestro caso:

sudo ufw allow 'Nginx Full'

Verificar el cambio

sudo ufw status

El comando anterior mostrará qué tráfico está permitido.

Configuración de nginx

Comprobar la versión instalada

sudo apt list --installed | grep nginx

Comprobar el servicio systemd

sudo systemctl status nginx

Debería ver este resultado que muestra que nginx se está ejecutando

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-30 14:07:33 UTC; 2min 42s ago
       Docs: man:nginx(8)
   Main PID: 4684 (nginx)
      Tasks: 5 (limit: 9257)
     CGroup: /system.slice/nginx.service
             ├─4684 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─4685 nginx: worker process
             ├─4686 nginx: worker process
             ├─4687 nginx: worker process
             └─4688 nginx: worker process

Jul 30 14:07:33 frhb64566ds systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 14:07:33 frhb64566ds systemd[1]: Started A high performance web server and a reverse proxy server.

Para asegurarse de que el servicio nginx siempre se esté ejecutando incluso después de reiniciar, use este comando systemnd para habilitar:

sudo systemctl enable nginx

Puede usar estos otros comandos systemd para administrar nginx:

# To start the service
sudo systemctl start nginx

# To restart the service
sudo systemctl restart nginx

# To reload the service config
sudo systemctl reload nginx

# To stop the service config
sudo systemctl restart nginx

# To disable the service config
sudo systemctl restart nginx

Para confirmar que nginx realmente se está ejecutando y es accesible, use este comando:

curl http://server_ip/

donde server_ip es la ip de tu servidor. Si por alguna razón no conoce la ip pública de su servidor, use esto para verificar:

curl -4 icanhazip.com

Entonces:

curl http://178.170.10.54/

Debería obtener la página nginx predeterminada.

Servir nginx de página estática simple

Echemos un vistazo a un ejemplo para servir una página estática con nginx. La página estática es html y css que no necesita ninguna representación del lado del servidor. Vamos a utilizar el dominio de ejemplo your.domain.com en nuestro caso.

Pasos:

  1. Cree el directorio para almacenar nuestro contenido estático (usaremos /var/www/your.domain.com )

    sudo mkdir -p /var/www/your.domain.com
  2. Asegúrese de que el usuario actual pueda acceder al directorio creado

    sudo chown -R ${USER}:${USER} /var/www/your.domain.com
    sudo chmod -R 755 /var/www/your.domain.com
  3. Agregue un archivo de muestra al directorio (/var/www/your.domain.com/index.html )

    cat > /var/www/your.domain.com/index.html <<EOF
    <html>
    <head>
        <title>Hola from your.domain.com!</title>
    </head>
    <body>
        <h1>Hey!</h1>
        <p>Our site <i>your.domain.com</i> is working as expected.</p>
    </body>
    </html>
    EOF
  4. Cree la configuración de nginx en el directorio /etc/nginx/conf.d donde nginx busca configuraciones para incluir al servir. Crearemos el archivo /etc/nginx/conf.d/your.domain.com.conf con el contenido requerido.

Usa este comando:

cat > /etc/nginx/conf.d/your.domain.com.conf <<EOF
server {
    listen 80;
    server_name your.domain.com;

    root /var/www/your.domain.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
EOF
  1. Pruebe para asegurarse de que no haya errores de sintaxis en ninguno de los archivos nginx

    sudo nginx -t
  2. Si no hay errores, reinicie nginx para recargar la configuración

    sudo systemctl restart nginx
  3. Para asegurarse de que su dominio pueda llegar al servidor, edite su configuración de DNS para asegurarse de que los registros A del sitio your.domain.com está apuntando a la IP del servidor.

Su sitio ahora debería estar en funcionamiento. Confirme visitando http://su.dominio.com

Archivos y directorios importantes de Nginx en Nginx

  • /var/www/html :Este es el directorio de contenido web. Contiene el contenido de la página predeterminada en el archivo index.nginx-debian.html . Esa página se representa cuando no se define un host de servidor específico.

  • /etc/nginx :contiene todos los archivos de configuración de nginx.

  • /etc/nginx/nginx.conf :Este es el principal archivo de configuración global de nginx

  • /etc/nginx/sites-available/ :El directorio donde se pueden almacenar los bloques del servidor por sitio. Nginx no usará los archivos de configuración que se encuentran en este directorio a menos que estén vinculados a sites-enabled directorio. Por lo general, toda la configuración del bloque del servidor se realiza en este directorio y luego se habilita vinculando al otro directorio.

  • /etc/nginx/sites-enabled/ :el directorio donde se almacenan los bloques de servidor habilitados por sitio. Por lo general, estos se crean vinculando los archivos de configuración que se encuentran en el directorio de sitios disponibles.

  • /etc/nginx/snippets :este directorio contiene fragmentos de configuración que se pueden incluir en otro lugar de la configuración de Nginx. Los segmentos de configuración potencialmente repetibles son buenos candidatos para la refactorización en fragmentos.

  • /var/log/nginx/access.log :Cada solicitud a su servidor web se registra en este archivo de registro a menos que Nginx esté configurado para hacer lo contrario.

  • /var/log/nginx/error.log :Cualquier error de Nginx se registrará en este registro.


Ubuntu
  1. Cómo instalar y configurar Nginx en CentOS 8

  2. Cómo instalar y configurar Nginx en Ubuntu 20.04

  3. Cómo instalar Nginx en Ubuntu 16.04

  4. Cómo instalar y configurar GitLab en Ubuntu 18.04

  5. ¿Cómo instalar y configurar Varnish en Ubuntu 20.04?

Cómo instalar y configurar GitLab CE en Ubuntu 18.04 LTS

Cómo instalar y configurar DNS en Ubuntu

Cómo instalar y configurar Kubernetes en Ubuntu

Instalar y configurar Log con Graylog en Ubuntu 20.04

Cómo instalar y configurar Nginx en Ubuntu 20.04 y Ubuntu 21.04

Cómo instalar y configurar Memcached en Ubuntu