Apache es uno de los servidores web más fiables y potentes disponibles. Apache es de código abierto, altamente personalizable y viene con muchos módulos que le permiten agregar funcionalidad adicional. Es conocido por su potencia y está especialmente diseñado para sitios web pequeños y medianos.
El uso de Apache en paralelo con Nginx y FastCGI Cache le permite obtener lo mejor de ambos mundos. Esta configuración mejorará el rendimiento de su servidor web utilizando las fortalezas de ambas aplicaciones de servidor web. El caché Nginx FastCGI funciona almacenando copias de archivos en un caché para que se pueda acceder a ellos más rápidamente.
En este tutorial, le mostraremos cómo configurar el caché Nginx FastCGI con el servidor LAMP en Ubuntu 18.04. Configuraremos Apache como servidor backend y Nginx como servidor frontend con FastCGI Cache.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar el servidor LAMP
First, install the Apache web server, PHP, PHP-FPM and other modules with the following command: apt-get install apache2 php php-fpm libapache2-mod-php7.2 libapache2-mod-fcgid -y
Una vez que todos los paquetes estén instalados, deberá habilitar algunos módulos de Apache necesarios para que Apache pueda funcionar con PHP-FPM.
Puede habilitarlos con el siguiente comando:
a2enmod actions fcgid alias proxy_fcgi
A continuación, reinicie el servicio Apache para aplicar los cambios.
systemctl restart apache2
Paso 3:cree un sitio web de muestra
Primero, crea un directorio para tu sitio web con el siguiente comando:
mkdir /var/www/html/example.com
A continuación, cree un archivo info.php de muestra dentro del directorio de su sitio web:
nano /var/www/html/example.com/info.php
Agregue las siguientes líneas:
<?php phpinfo(); ?>
Guarde y cierre el archivo, luego cambie la propiedad de su sitio web a www-data user:
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
Una vez que haya terminado, puede continuar con el siguiente paso.
Paso 4:configurar el servidor web Apache
nano /etc/apache2/ports.conf
Cambia la línea de "Escucha 80" a "Escucha 8088":
Listen 8088
Guarde y cierre el archivo cuando haya terminado, luego deshabilite el archivo de host virtual predeterminado de Apache con el siguiente comando:
a2dissite 000-default.conf
A continuación, reinicie el servidor web Apache para implementar los cambios.
systemctl restart apache2
A continuación, cree un nuevo archivo de configuración de host virtual para servir su sitio web:
nano /etc/apache2/sites-available/example.com.conf
Agrega el siguiente contenido:
<VirtualHost 127.0.0.1:8088> ServerName 127.0.0.1 ServerAdmin [email protected] DocumentRoot /var/www/html/example.com DirectoryIndex info.php <FilesMatch \.php$> # 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" </FilesMatch> <Directory /var/www/html/> Options FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log </VirtualHost>
Guarde y cierre el archivo cuando haya terminado, luego habilite el archivo de configuración de host virtual de Apache con el siguiente comando:
a2ensite example.com.conf
A continuación, reinicie el servicio Apache para aplicar los cambios:
systemctl restart apache2
En este punto, el servidor web Apache está configurado y escuchando en localhost en el puerto 8088.
Paso 5:configurar Nginx como proxy inverso con FastCGI Cache
En esta sección, configuraremos Nginx como proxy inverso para el servidor web Apache y habilitaremos FastCGI Cache.
Primero, instale el servidor web Nginx con el siguiente comando:
apt-get install nginx -y
Una vez instalado, cree un nuevo archivo de configuración de host virtual Nginx:
nano /etc/nginx/sites-available/example.com.conf
Agrega el siguiente contenido:
# Enable FastCGI Support proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:100m max_size=1g inactive=60m use_temp_path=off; fastcgi_cache_key "$scheme$request_method$host$request_uri"; add_header X-Cache $upstream_cache_status; server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location = /favicon.ico { access_log off; log_not_found off; } set $skip_cache 0; #Disable caching for login session, user cookie, POST request, query string, site map and feeds if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } # Enable caching for your website. location / { proxy_pass http://127.0.0.1:8088; proxy_set_header Host $host; proxy_buffering on; proxy_cache nginxcache; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_valid 200 301 302 60m; proxy_cache_min_uses 1; proxy_cache_lock on; } }
Guarde y cierre el archivo cuando haya terminado, luego habilite el archivo de host virtual Nginx con el siguiente comando:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
A continuación, reinicie el servicio Nginx para aplicar los cambios:
systemctl restart nginx
Paso 6:Probar la memoria caché Nginx FastCGI
En este punto, Nginx está instalado y configurado como un proxy inverso para Apache compatible con FastCGI Cache. Es hora de verificar si el almacenamiento en caché funciona o no.
Abra su navegador web y acceda a su servidor web Nginx usando la URL http://example.com y vuelva a cargar la página varias veces.
A continuación, abra su terminal y ejecute el siguiente comando para obtener el encabezado de respuesta http.
curl -I http://example.com
Deberías obtener el siguiente resultado:
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Fri, 24 Apr 2020 17:01:42 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Cache: HIT
Del resultado anterior, X-Cache:HIT indica que la respuesta se envió desde el caché.
Conclusión
En la guía anterior, hemos instalado y configurado el servidor web Apache como servidor backend y Nginx como servidor frontend con almacenamiento en caché FastCGI. Con suerte, esta configuración mejorará drásticamente el rendimiento de su servidor web. ¡Comience hoy con el almacenamiento en caché FastCGI en su servidor LAMP con alojamiento VPS de Atlantic.Net!