Cómo configurar Nginx como servidor web y proxy inverso para Apache en CentOS 8

información PHP

Como sabe, Apache y Nginx son servidores web gratuitos, de código abierto y potentes en todo el mundo. Apache es conocido por su potencia, mientras que Nginx es conocido por su velocidad. Ambos tienen algunos inconvenientes y beneficios. Nginx usa PHP-FPM para cargar los archivos PHP, mientras que Apache carga PHP por sí solo. Apache se usa para la parte dinámica del sitio web, mientras que Nginx sirve archivos estáticos como gráficos, CSS y archivos js.

Es una buena idea usar ambos en un solo servidor y obtener beneficios de ambos. En este tutorial, le mostraremos cómo usar Nginx como servidor web y proxy inverso para el servidor web Apache en CentOS 8.

requisitos previos

  • Un servidor que ejecuta CentOS 8.
  • Un nombre de dominio apuntado con la IP de su servidor.
  • Se configura una contrase√Īa de root en el servidor.

Instalar Apache y PHP

Primero, deber√° instalar el servidor web Apache y PHP en su servidor. Puedes instalarlo usando el siguiente comando:

dnf install httpd php php-cli -y

Una vez finalizada la instalación, inicie el servicio Apache y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start httpd
systemctl enable httpd

Configurar el servidor web Apache

De forma predeterminada, el servidor web Apache escucha en el puerto 80. Por lo tanto, deberá configurar el servidor web Apache para escuchar en el puerto 8080. Puede hacerlo editando el archivo de configuración principal de Apache:

nano /etc/httpd/conf/httpd.conf

Cambie la publicación de 80 a 8080 como se muestra a continuación:

Listen 8080

Guarde y cierre el archivo, luego reinicie el servicio Apache para aplicar los cambios:

systemctl restart httpd

A continuación, verifique el puerto de escucha de Apache con el siguiente comando:

ss -antpl | grep httpd

Deberías obtener el siguiente resultado:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))

A continuación, cree un archivo info.php dentro del directorio raíz web de Apache:

nano /var/www/html/info.php

Agregue la siguiente línea:

<?php phpinfo(); ?>

Guarde y cierre el archivo cuando haya terminado.

A continuación, abra su navegador web y acceda a la URL http://ip-de-su-servidor:8080/info.php. Deberías ver la siguiente página:

información PHP

Instalar el servidor web Nginx

A continuación, deberá instalar el paquete Nginx en su servidor. Puedes instalarlo con el siguiente comando:

dnf install nginx -y

Una vez que se haya instalado Nginx, inicie el servicio Nginx y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start nginx
systemctl enable nginx

Configurar Nginx como proxy inverso para Apache

Ahora, deber√° configurar Nginx como un proxy inverso para reenviar todas las solicitudes que llegan del puerto 80 al servidor web Apache que est√° escuchando en el puerto 8080.

Primero, cree un nuevo archivo de configuración de host virtual Nginx con el siguiente comando:

nano /etc/nginx/conf.d/proxy.conf

Agregue las siguientes líneas:

server {
    listen 80;
    server_name test.example.com;

    location ~ \.php$ {
        proxy_pass http://your-server-ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servidor web Nginx para aplicar los cambios:

systemctl restart nginx

Ahora, abra su navegador web y acceda a la URL http://prueba.ejemplo.com/info.php. Deberías ver la siguiente página:

Información de PHP a través de proxy inverso

Como puede ver, PHP es atendido por un servidor web Nginx.

Conclusión

En la guía anterior, aprendió a configurar Nginx como servidor web y proxy inverso para Apache. Espero que esto le ayude a aumentar el rendimiento de su sitio web.

Hitesh Jethva

Acerca de Hitesh Jethva

M√°s de 8 a√Īos de experiencia como administrador de sistemas Linux. Mis habilidades incluyen un conocimiento profundo de Redhat/Centos, Ubuntu Nginx y Apache, Mysql, Subversion, Linux, Ubuntu, alojamiento web, servidor web, proxy Squid, NFS, FTP, DNS, Samba, LDAP, OpenVPN, Haproxy, servicios web de Amazon , WHMCS, OpenStack Cloud, servidor de correo Postfix, seguridad, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *