GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar un subdominio o alojar múltiples dominios usando nginx en el servidor Linux

¿Sabía que puede alojar múltiples dominios y subdominios usando una sola dirección IP en Linux a través de bloques de servidor nginx (o hosts virtuales en apache)?

Bueno, si no sabe cómo hacerlo, leer este tutorial le configurará dos dominios y un subdominio, ambos apuntando a la misma dirección IP y host en el mismo servidor.
Esta es la suposición general para esta configuración:

  • Dirección IP :220.168.32.101
  • Nombres de dominio :ejemplo.com, blog.ejemplo.com, fakenews.com

Antes de comenzar el tutorial, lo primero que debe hacer es apuntar todos sus dominios y subdominios a la dirección IP única a través de su proveedor de DNS (edite A , CNOMBRE ).
Sin embargo, si desea probar esto localmente, edite el /etc/hosts archivo de configuración y agregue lo siguiente:

220.168.32.101 example.com blog.example.com
220.168.32.101 fakenews.com

Y cuando haga ping a estos dominios localmente en el servidor, obtendrá una respuesta ok (200).

Ahora seguiremos los pasos para configurar estos nombres de dominio:

1. Instalar e iniciar nginx

Use el siguiente comando para instalar nginx en ubuntu

$ sudo apt install nginx
# now start it
$ sudo nginx

2. Probar el nginx

Verifique cualquiera de los dominios o la dirección IP en su navegador para asegurarse de que nginx funcione correctamente. El navegador generará una página nginx predeterminada.

3. Configure los directorios de prueba para cada dominio

Hasta ahora, todos los dominios se han configurado correctamente, pero hay un gran problema, todos apuntan a la misma página. Necesitamos separar estos dominios para que apunten a sus propias páginas. Para esto, configuraré directorios de prueba y páginas html.

  • Creación de directorios para cada dominio y subdominio
$ cd /var/www
$ sudo mkdir example.com blog.example.com fakenews.com
  • Creación de páginas html simples para cada uno
$ sudo touch example.com/index.html
$ sudo touch blog.example.com/index.html
$ sudo touch fakenews.com/index.html
  • Por último, coloque contenido diferente en cada index.html archivos

4. Creación de bloques de servidor para cada dominio y subdominio

Nginx proporciona predeterminado bloque de servidor en /etc/nginx/sites-disponible . Copiaremos ese bloque de servidor para cada dominio y haremos modificaciones para cada uno.
También crearemos un enlace simbólico del nuevo archivo

## For example.com domain
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
## similarly do for others also.

Ahora, después de la modificación, el nuevo archivo se verá así para example.com dominio

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/example.com;
        index index.html;
        server_name example.com;
}

Aquí servidor_predeterminado significa que si ninguno de los otros dominios se resuelve, el último recurso es resolver este bloque de servidor.

NOTA:Solo hay un bloque de servidor predeterminado en nginx con el mismo puerto.

Del mismo modo para otros dos dominios la configuración es:

## For blog.example.com subdomain
server {
        listen 80;
        listen [::]:80;
        root /var/www/blog.example.com;
        index index.html;
        server_name blog.example.com;
}

## For fakenews.com domain
server {
        listen 80;
        listen [::]:80;
        root /var/www/fakenews.com;
        index index.html;
        server_name fakenews.com;
}

Bonificación: Supongamos que fakenews.com escucha de dominio en un puerto diferente (decir 2368 puerto ) y desea que el puerto de proxy en nginx sea predeterminado 80 puerto, entonces puedes usar ubicación bloque dentro del servidor bloque así:

server {
   ## other configuration as above
    # ...
  location {
     proxy_pass http://127.0.0.1:2368;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header HOST $http_host;
  }
}

Eso es todo por ahora, para cualquier consulta decir en los comentarios a continuación.


Linux
  1. Cómo instalar el servidor web Nginx en Linux

  2. Cómo crear un host virtual Nginx (bloque de servidor)

  3. Cómo configurar el servidor de registro centralizado usando Rsyslog

  4. Cómo configurar SSH sin contraseña en Linux

  5. Servir múltiples dominios mediante el uso de hosts virtuales

Cómo instalar el servidor web Nginx en Alpine Linux

Cómo instalar Nginx en un servidor en la nube Arch Linux

Aloje múltiples sitios web en un solo servidor con Apache en Ubuntu 18.04

Cómo configurar Nginx Cache en un servidor LAMP

Cómo configurar la caché de Nginx en el servidor LEMP

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN