Como sabe, tanto Apache como 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
- 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 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, compruebe 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://your-server-ip:8080/info.php . Debería ver la siguiente página:
Instalar servidor web Nginx
A continuación, deberá instalar el paquete Nginx en su servidor. Puede 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://test.example.com/info.php . Debería ver la siguiente página:
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.