Apache je jedním z nejspolehlivějších a nejvýkonnějších dostupných webových serverů. Apache je open-source, vysoce přizpůsobitelný a je dodáván s mnoha moduly, které vám umožňují přidat další funkce. Je známý svou silou a je speciálně navržen pro malé až středně velké weby.
Používání Apache souběžně s Nginx a FastCGI Cache vám umožní získat to nejlepší z obou světů. Toto nastavení zlepší výkon vašeho webového serveru s využitím silných stránek obou webových serverových aplikací. Mezipaměť Nginx FastCGI funguje tak, že ukládá kopie souborů do mezipaměti, takže k nim lze rychleji přistupovat.
V tomto tutoriálu vám ukážeme, jak nastavit mezipaměť Nginx FastCGI se serverem LAMP na Ubuntu 18.04. Nakonfigurujeme Apache jako backend server a Nginx jako frontend server s FastCGI Cache.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace serveru 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
Jakmile jsou všechny balíčky nainstalovány, budete muset povolit některé požadované moduly Apache, aby Apache mohl pracovat s PHP-FPM.
Můžete je povolit pomocí následujícího příkazu:
a2enmod actions fcgid alias proxy_fcgi
Poté restartujte službu Apache, aby se změny projevily.
systemctl restart apache2
Krok 3 – Vytvořte ukázkový web
Nejprve vytvořte adresář pro svůj web pomocí následujícího příkazu:
mkdir /var/www/html/example.com
Dále vytvořte ukázkový soubor info.php v adresáři vašeho webu:
nano /var/www/html/example.com/info.php
Přidejte následující řádky:
<?php phpinfo(); ?>
Uložte a zavřete soubor a poté změňte vlastnictví svého webu na www-data user:
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Krok 4 – Konfigurace webového serveru Apache
nano /etc/apache2/ports.conf
Změňte řádek z „Listen 80“ na „Listen 8088“:
Listen 8088
Po dokončení uložte a zavřete soubor, poté deaktivujte výchozí soubor virtuálního hostitele Apache pomocí následujícího příkazu:
a2dissite 000-default.conf
Poté restartujte webový server Apache, aby se změny implementovaly.
systemctl restart apache2
Dále vytvořte nový konfigurační soubor virtuálního hostitele, který bude sloužit vašemu webu:
nano /etc/apache2/sites-available/example.com.conf
Přidejte následující obsah:
<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>
Po dokončení uložte a zavřete soubor a poté povolte konfigurační soubor virtuálního hostitele Apache pomocí následujícího příkazu:
a2ensite example.com.conf
Poté restartujte službu Apache, aby se změny projevily:
systemctl restart apache2
V tomto okamžiku je webový server Apache nakonfigurován a naslouchá na localhost na portu 8088.
Krok 5 – Nakonfigurujte Nginx jako reverzní proxy s mezipamětí FastCGI
V této části nakonfigurujeme Nginx jako reverzní proxy pro webový server Apache a povolíme mezipaměť FastCGI.
Nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Po instalaci vytvořte nový konfigurační soubor virtuálního hostitele Nginx:
nano /etc/nginx/sites-available/example.com.conf
Přidejte následující obsah:
# 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; } }
Po dokončení uložte a zavřete soubor a poté povolte soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Poté restartujte službu Nginx, aby se změny projevily:
systemctl restart nginx
Krok 6 – Otestujte mezipaměť Nginx FastCGI
V tomto okamžiku je Nginx nainstalován a nakonfigurován jako reverzní proxy pro Apache s podporou FastCGI Cache. Je čas ověřit, zda ukládání do mezipaměti funguje nebo ne.
Otevřete webový prohlížeč a přejděte na webový server Nginx pomocí adresy URL http://example.com a stránku několikrát znovu načtěte.
Dále otevřete svůj terminál a spusťte následující příkaz k načtení záhlaví odpovědi http.
curl -I http://example.com
Měli byste získat následující výstup:
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
Z výše uvedeného výstupu X-Cache:HIT označuje, že odpověď byla doručena z mezipaměti.
Závěr
Ve výše uvedené příručce jsme nainstalovali a nakonfigurovali webový server Apache jako backend server a Nginx jako frontend server s mezipamětí FastCGI. Doufejme, že toto nastavení výrazně zlepší výkon vašeho webového serveru. Začněte s ukládáním do mezipaměti FastCGI na vašem serveru LAMP s VPS hostingem od Atlantic.Net ještě dnes!