Nginx y Apache son servidores web fantásticos y potentes. Sin embargo, ambos tienen desventajas; Apache consume memoria del servidor, mientras que Nginx (mejor utilizado para archivos estáticos) necesita la ayuda de php-fpm para manejar contenido dinámico.
Este artículo le muestra cómo configurar Nginx y Apache para que funcionen juntos.
Información general
Nginx es un servidor web excelente y ligero diseñado para alto tráfico, mientras que Apache es otro servidor web popular que sirve a más de la mitad de todos los sitios web activos del mundo. Puede combinar los dos servidores web con sensatez, con Nginx sirviendo como un servidor web estático en el frente y Apache procesando el back-end. Entonces, veamos cómo configurar su Nginx para que funcione junto con Apache.
Configurar Apache y Nginx
Configura Nginx y apache en diferentes puertos para cada servidor. Eso significa que puede dejar el puerto 80 para Nginx y asignar otro puerto a Apache.
Nginx
Instalar Nginx
Instale y configure Nginx, que servirá como la interfaz de su sitio.
Descarga de apt-get;
sudo apt-get install nginx
Después de la descarga, configure el host virtual para que se ejecute en el front-end. Sin embargo, para configurar Nginx se requieren algunos cambios en el archivo de configuración.
Configurar Nginx
Abra el archivo de configuración de nginx
sudo nano /etc/nginx/sites-available/example
Por ejemplo, podría decirle a Apache que escuche en 127.0.0.1:8080 y decirle a Nginx que invierta el tráfico de proxy a Apache mientras sigue sirviendo contenido estático;
server { listen 127.0.0.1:80; server_name some.name another.dname; access_log /var/log/nginx/something-access.log; location / { proxy_pass http://localhost:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~* ^.+.(jpg|js|jpeg|png)$ { root /some/where/on/your/disks; } ; put your static hosting config here. }
Active el host virtual.
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
Elimina el bloque del servidor Nginx predeterminado.
sudo rm /etc/nginx/sites-enabled/default
apache
Instalar Apache
Instale el backend que es Apache
sudo apt-get install apache2
Apache se inicia en el puerto 80 porque Nginx no se inicia. Escuchemos Apache en un puerto diferente para que puedan trabajar juntos.
Configurar Apache
Apache abierto ports.conf Archivo con el siguiente comando;
sudo nano /etc/apache2/ports.conf
Busque la siguiente línea;
Listen 127.0.0.1:80
También cámbielo a;
Listen 127.0.01:8080
ahorrar y Salida.
A continuación, edite el archivo de hosts virtuales Apache predeterminado. La Este archivo está configurado para servir sitios en el puerto 80 únicamente
sudo nano /etc/apache2/sites-available/000-default.conf
Busque la siguiente línea;
<VirtualHost 127.0.0.1:80>
También cámbielo a;
<VirtualHost 127.0.0.1:8080>
Guarde el archivo y vuelva a cargar Apache.
sudo service apache2 reload
Asegúrese de que Apache esté escuchando en 8080 ahora.
sudo netstat -tlpn
La salida se muestra a continuación con Apache2 escuchar ::: 8080.
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1086/sshd tcp6 0 0 :::8080 :::* LISTEN 4678/apache2
Nginx está configurado y ejecutándose como servidor web frontal en el puerto, mientras que Apache está configurado para ejecutarse en el back-end en el puerto 8080. Nginx redirige el tráfico del proxy a medida que continúa ofreciendo contenido estático.
Conclusión
Lo más importante que obtenemos de esta configuración simple es que Apache y Nginx pueden trabajar y trabajarán juntos. Puede surgir un problema si ambos están escuchando en los mismos puertos. Al proporcionarles varios puertos para escuchas clandestinas, la funcionalidad de su sistema está asegurada.