GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar bloques de servidor Nginx en Ubuntu y CentOS

En este tutorial, le proporcionaremos instrucciones paso a paso sobre cómo configurar bloques de servidor nginx en Ubuntu 16.04 y  CentOS 7. Los bloques de servidor Nginx a menudo se usan para ejecutar varios sitios web en una sola dirección IP.

Tenga en cuenta que este tutorial es solo para Nginx. Si usa Apache, deberá configurar hosts virtuales

1. Instalar Nginx en Ubuntu

Asegúrese de que los paquetes del sistema operativo de su servidor estén completamente actualizados:

apt-get update 
apt-get upgrade

Detenga y elimine Apache, luego instale nginx usando los siguientes comandos:

service apache2 stop
apt-get remove apache2
apt-get autoremove
apt-get install nginx

Elimina el archivo de configuración predeterminado de nginx:

rm /etc/nginx/sites-enabled/default

Habilite el servicio nginx para que se inicie en el arranque e inícielo:

systemctl enable nginx
systemctl start nginx.service

2. Instalar Nginx en CentOS

Asegúrese de que todos los paquetes del sistema operativo estén actualizados ejecutando los siguientes comandos:

yum clean all
yum update

Detenga y elimine Apache si está instalado y ejecutándose en su servidor virtual:

systemctl stop httpd
systemctl disable httpd
yum remove httpd

Instalar nginx:

yum install nginx

Además, es posible que desee instalar PHP y MariaDB, así que ejecute el siguiente comando:

yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml

Edite el archivo de configuración /etc/php-fpm.d/www.conf y cambie:

user = apache
group = apache

a:

user = www-data
group = www-data

Ejecute el siguiente comando:

chown www-data: -R /var/lib/php/session

Inicie los servicios PHP-FPM, Nginx y MariaDB y habilítelos para que se inicien en el arranque:

systemctl start php-fpm
systemctl start nginx
systemctl start mariadb
systemctl enable php-fpm
systemctl enable nginx
systemctl enable mariadb

3. Configurar nginx y configurar bloques de servidor nginx

Configuremos las directivas principales en el archivo de configuración principal de nginx llamado 'nginx.conf'. Debe estar ubicado en el directorio /etc/nginx/ en su servidor.

vi /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

usuario – un usuario que poseerá y ejecutará el servidor nginx.

procesos_trabajadores – en general, es mejor establecer la configuración de nginx worker_processes en la cantidad de CPU. Si, por ejemplo, está utilizando nuestro plan SSD 4 VPS, configure los procesos de los trabajadores en 4.

Para verificar la cantidad de CPU en su servidor, puede usar el siguiente comando:

#cat /proc/cpuinfo | grep processor | wc -l

4

pid – la ubicación donde nginx escribirá su ID de proceso maestro o PID.

Si usa CentOS, cree un nuevo archivo de configuración de Nginx para su sitio web:

vi /etc/nginx/conf.d/domain1.com.conf

Agrega el siguiente contenido:

server {
    server_name www.domain1.com domain1.com;
    listen 80;
    root /var/www/html/domain1.com;
    access_log /var/log/nginx/domain1.com-access.log;
    error_log /var/log/nginx/domain1.com-error.log;
    index index.php;
 
    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
        access_log off;
        expires max;
    }

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

}

Si necesita alojar más de un sitio web en el mismo servidor (usando la misma dirección IP), puede crear un nuevo bloque de servidor. Lo mejor es crear un nuevo archivo de configuración para cada sitio web.

Por ejemplo, cree un segundo archivo de configuración de nginx llamado /etc/nginx/conf.d/domain2.com.conf y agregue el mismo contenido que /etc/nginx/conf.d/domain1.com.conf , pero asegúrese de reemplazar dominio1.com con el segundo nombre de dominio, incluida la raíz del documento de su sitio web, la ubicación de los archivos de registro, etc.:

server {
    server_name www.domain2.com domain2.com;
    listen 80;
    root /var/www/html/domain2.com;
    access_log /var/log/nginx/domain2.com-access.log;
    error_log /var/log/nginx/domain2.com-error.log;
    index index.php;
 
    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
        access_log off;
        expires max;
    }

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

}

Si usa Ubuntu OS, cree el archivo de configuración nginx 'domain1.com.conf' en el directorio /etc/nginx/sites-disponible.

vi /etc/nginx/sites-enabled/domain1.com.conf

(agregue el mismo contenido que el contenido mencionado anteriormente, es decir, /etc/nginx/conf.d/domain1.com.conf en un servidor CentOS).

Luego, cree un enlace simbólico desde este archivo al directorio habilitado para sitios:

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Repita el mismo procedimiento y cree nuevos archivos de configuración para todos los demás sitios web alojados en el servidor.

4. Probar la configuración de Nginx

nginx -t

Si la prueba es exitosa, reinicie el servicio Nginx:

systemctl restart nginx

Cargue los archivos de su sitio web en los directorios /var/www/html/domain1.com, /var/www/html/domain2.com /var/www/html/domainN.com.

El usuario del servidor web (www-data) necesita tener acceso a los directorios /var/www/html/domain1.com, /var/www/html/domain2.com, /var/www/html/domainN.com. Se puede lograr fácilmente ejecutando el siguiente comando:

chown -R www-data:www-data /var/www/html/

Por supuesto, no tiene que saber Cómo configurar los bloques del servidor Nginx en Ubuntu y CentOS, si usa uno de nuestros servicios de alojamiento VPS de Nginx, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que configuren el servidor nginx bloques para ti. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.

PD. Si le gustó esta publicación, sobre cómo configurar Nginx Server Blocks en Ubuntu y CentOS, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.


Cent OS
  1. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  2. Configurar el servidor DHCP en CentOS 8:¿cómo hacerlo?

  3. Cómo configurar el servidor y el cliente NFS en Ubuntu 20.04

  4. Cómo habilitar HTTP/2 en Nginx en Ubuntu y CentOS

  5. Cómo cambiar el nombre de host en CentOS y Ubuntu

Cómo instalar Nginx en CentOS

Cómo instalar y configurar un servidor OpenVPN en Ubuntu 22.04

Cómo instalar y configurar Gitlab CE Server en Centos 8

Cómo instalar Nginx en CentOS 6

Cómo configurar el servidor DHCP en CentOS 8

Cómo configurar el servidor y el cliente NFS en CentOS 8