GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar Nginx Cache en un servidor LAMP

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!


Linux
  1. Cómo configurar bloques de servidor Nginx en Ubuntu 18.04 LTS

  2. Cómo configurar WordPress en Ubuntu Server con Apache

  3. Cómo instalar el servidor LAMP en Debian 11

  4. Cómo configurar Apache como proxy frontend para Node.js

  5. Cómo instalar el servidor LAMP en CentOS 8

Cómo instalar LAMP (Apache, MariaDB, PHP) en un servidor en la nube CentOS 7.2

Cómo instalar NGINX en Ubuntu 20.04

Cómo configurar la autenticación de contraseña con Apache en Ubuntu 18.04

Cómo configurar la caché de Nginx en el servidor LEMP

Cómo configurar un servidor NGINX RTMP para transmisión

Cómo configurar Nginx como equilibrador de carga para Apache o Tomcat para HTTP/HTTPS