Apache è uno dei server web più affidabili e potenti disponibili. Apache è open source, altamente personalizzabile e viene fornito con molti moduli che consentono di aggiungere funzionalità aggiuntive. È noto per la sua potenza ed è appositamente progettato per siti Web di piccole e medie dimensioni.
L'utilizzo di Apache in parallelo con Nginx e FastCGI Cache ti consente di ottenere il meglio da entrambi i mondi. Questa configurazione migliorerà le prestazioni del tuo server web utilizzando i punti di forza di entrambe le applicazioni del server web. La cache di Nginx FastCGI funziona archiviando copie di file in una cache in modo da potervi accedere più rapidamente.
In questo tutorial, ti mostreremo come configurare la cache Nginx FastCGI con LAMP Server su Ubuntu 18.04. Configureremo Apache come server back-end e Nginx come server front-end con FastCGI Cache.
Prerequisiti
- Un nuovo VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo con almeno 1GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Fase 2 – Installa il server 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 volta installati tutti i pacchetti, dovrai abilitare alcuni moduli Apache richiesti in modo che Apache possa funzionare con PHP-FPM.
Puoi abilitarli con il seguente comando:
a2enmod actions fcgid alias proxy_fcgi
Quindi, riavvia il servizio Apache per applicare le modifiche.
systemctl restart apache2
Fase 3:crea un sito Web di esempio
Innanzitutto, crea una directory per il tuo sito Web con il seguente comando:
mkdir /var/www/html/example.com
Quindi, crea un file info.php di esempio all'interno della directory del tuo sito Web:
nano /var/www/html/example.com/info.php
Aggiungi le seguenti righe:
<?php phpinfo(); ?>
Salva e chiudi il file, quindi cambia la proprietà del tuo sito web in www-data user:
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
Una volta terminato, puoi procedere al passaggio successivo.
Fase 4:configurare il server Web Apache
nano /etc/apache2/ports.conf
Cambia la riga da "Ascolta 80" a "Ascolta 8088":
Listen 8088
Salva e chiudi il file al termine, quindi disabilita il file host virtuale predefinito di Apache con il seguente comando:
a2dissite 000-default.conf
Quindi, riavvia il server Web Apache per implementare le modifiche.
systemctl restart apache2
Quindi, crea un nuovo file di configurazione dell'host virtuale per servire il tuo sito web:
nano /etc/apache2/sites-available/example.com.conf
Aggiungi il seguente contenuto:
<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>
Salva e chiudi il file al termine, quindi abilita il file di configurazione dell'host virtuale Apache con il seguente comando:
a2ensite example.com.conf
Quindi, riavvia il servizio Apache per applicare le modifiche:
systemctl restart apache2
A questo punto, il web server Apache è configurato ed è in ascolto su localhost sulla porta 8088.
Passaggio 5:configura Nginx come proxy inverso con FastCGI Cache
In questa sezione, configureremo Nginx come proxy inverso per il server Web Apache e abiliteremo FastCGI Cache.
Innanzitutto, installa il server web Nginx con il seguente comando:
apt-get install nginx -y
Una volta installato, crea un nuovo file di configurazione dell'host virtuale Nginx:
nano /etc/nginx/sites-available/example.com.conf
Aggiungi il seguente contenuto:
# 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; } }
Salva e chiudi il file al termine, quindi abilita il file host virtuale Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Quindi, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Passaggio 6:prova Nginx FastCGI Cache
A questo punto, Nginx è installato e configurato come proxy inverso per Apache con supporto FastCGI Cache. È ora di verificare se la memorizzazione nella cache funziona o meno.
Apri il tuo browser web e accedi al tuo server web Nginx utilizzando l'URL http://example.com e ricarica la pagina per alcune volte.
Quindi, apri il tuo terminale ed esegui il seguente comando per recuperare l'intestazione della risposta http.
curl -I http://example.com
Dovresti ottenere il seguente output:
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
Dall'output sopra, X-Cache:HIT indica che la risposta è stata fornita dalla cache.
Conclusione
Nella guida sopra, abbiamo installato e configurato il server web Apache come server back-end e Nginx come server front-end con memorizzazione nella cache FastCGI. Si spera che questa configurazione migliori notevolmente le prestazioni del tuo server web. Inizia oggi stesso con la memorizzazione nella cache FastCGI sul tuo server LAMP con l'hosting VPS di Atlantic.Net!