Apache je nejoblíbenější webový server schopný provozu na mnoha operačních systémech včetně UNIX/Linux, Windows a OpenVMS.
NGINX je vysoce výkonný webový server používaný zejména pro statické soubory a také jako reverzní proxy. Díky své univerzálnosti jej však lze využít téměř v jakékoliv situaci.
V tomto návodu vám ukážeme, jak využít silné stránky obou webových serverů tak, aby dokonale spolupracovaly. NGINX bude použit jako frontend, který bude zpracovávat požadavky klientů a posílat je do Apache, což bude náš backend webový server, který bude vracet odpověď. Tento postup poskytuje mnoho výhod, v první řadě bezpečnost a také výkon.
Nejdříve se připojte ke svému serveru pomocí SSH. Pokud ještě nemáte SSH připojení k dispozici, doporučujeme návod na bezpečné připojení pomocí SSH protokolu. Pokud se jedná o lokální server, pokračujte k dalšímu kroku a otevřete terminál serveru.
Instalace a konfigurace Apache
Aktualizujte distribuční úložiště Ubuntu Linux. Tím zajistíte stažení nejnovější verze Apache:
Poté zahajte instalaci:
$ sudo apt install apache2
Nyní je instalace Apache dokončena a je možné pokračovat v jeho konfiguraci.
Změňte port používaný ve výchozím nastavení Apache na 8080 otevřením konfiguračního souboru:
$ sudo nano /etc/apache2/ports.conf
Najděte řádek Listen 80 a změňte jej na Listen 8080, poté soubor uložte a zavřete.
Restartujte službu Apache:
$ sudo systemctl restart apache2
Pro kontrolu úspěšné změny portu otevřete v prohlížeči adresu http: // : 8080 /, v případě lokálního severu pak http://localhost: 8080. Pokud byl proces úspěšný, zobrazí se v prohlížeči vaše stránka.
Instalace a konfigurace NGINX
Pokračujte instalací NGINX:
$ sudo apt-get install nginx
Po dokončení instalace otevřete konfigurační soubor NGINX:
$ sudo nano /etc/nginx/nginx.conf
Poté upravte nebo přidejte blok dle zadání níže. Díky tomu bude NGINX používat Apache jako proxy server.
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name SERVER_IP;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Uložte a zavřete soubor.
Restartujte službu NGINX:
$ sudo systemctl restart nginx
Konfigurace Firewall
Prvním krokem v nastavení firewallu na vašem systému je povolení provozu HTTP a HTTPS.
Pokud používáte UFW firewall, máte pro NGINX k dispozici předinstalované profily. Pojďme se tedy podívat, jak je povolit.
Pro kontrolu dostupných profilů spusťte tento příkaz:
Na obrazovce se objeví seznam podobný tomuto:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Chcete-li povolit provoz HTTP (Port 80) a HTTPS (Port 443), použijte profil "Nginx Full".
Informace o profilu lze získat takto:
$ sudo ufw app info "Nginx Full"
Na obrazovce se objeví informace o profilu:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Po kontrole těchto informací jste připraveni profil povolit:
$ sudo ufw allow in "Nginx Full"
Nyní otestujte oba webové servery. Navštivte v prohlížeči adresu http: // , v případě lokálního serveru pak http: // localhost .
Pokud byl postup proveden správně, zobrazí se váš web s výchozí obrazovkou Apache. To znamená, že reverzní proxy pracuje a server byl správně nakonfigurován.