GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Nginx jako Reverse Proxy pro Apache na Ubuntu 15.10

Nginx nebo „engine-x " je vysoce výkonný webový server s nízkým využitím paměti, který vytvořil Igor Sysoev v roce 2002. Nginx není jen webový server, lze jej použít jako reverzní proxy pro mnoho protokolů, jako je HTTP, HTTPS, POP3, SMTP a IMAP a také jako nástroj pro vyrovnávání zatížení a mezipaměť HTTP.

Apache je nejoblíbenější software webového serveru spravovaný komunitou open source pod Apache Software Foundation. Pro apache je k dispozici mnoho přídavných modulů, jako je podpora WebDav nebo firewally webových aplikací, jako je mod_security, a podporuje mnoho webových programovacích jazyků jako Perl, Python, PHP prostřednictvím nativních modulů nebo pomocí rozhraní cgi, fcgi a FPM.

V tomto tutoriálu nainstaluji a nakonfiguruji Nginx jako caching reverzní proxy pro webový server Apache na Ubuntu 15.10, Nginx se používá jako frontend a Apache jako back end. Nginx poběží na portu 80, aby odpovídal na požadavky od uživatele/prohlížeče, požadavek pak bude předán na server Apache, který běží na portu 8080.

Krok 1 – Instalace Apache a PHP

Přihlaste se na svůj ubuntu server pomocí SSH a staňte se uživatelem root spuštěním:

sudo su

Poté nainstalujte apache pomocí příkazu apt-get:

apt-get install apache2

Jakmile je apache nainstalován, musíme nainstalovat PHP jako modul apache pro tento tutoriál:

apt-get install php5 php5-mysql libapache2-mod-php5

Krok 2 – Konfigurace Apache a PHP

Ve výchozím nastavení Apache naslouchá na portu 80. Musíme nakonfigurovat Apache tak, aby běžel na portu 8080 pro naše nastavení proxy, protože port 80 bude později používat nginx.

Pokud chcete změnit port pro webový server Apache, musíte upravit konfigurační soubor Apache „/etc/apache2/ports.conf“ a poté pokračovat s konfigurací virtuálního hostitele v „/etc/apache2/sites-available/ " adresář.

Nejprve změňte port pro apache na 8080 úpravou souboru "ports.conf" pomocí editoru vim:

vim /etc/apache2/ports.conf

Na řádku 5 , změňte port 80 na 8080.

Listen 8080

Uložte a ukončete.

Nyní přejděte do adresáře virtualhost a upravte soubor "000-default.conf" :

cd sites-available/
vim 000-default.conf

Ujistěte se, že vaše konfigurace je stejná jako níže:

<VirtualHost *:8080>

    ServerName www.reverse.com
    ServerAlias reverse.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Uložte a ukončete.

Dále otestujte konfiguraci a restartujte apache:

apachectl configtest
systemctl restart apache2

Nakonec ověříme, že apache a php fungují. Vytvořte nový soubor s názvem „info.php“ v adresáři „/var/www/html/“.

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Navštivte svůj web www.reverse.com:8080/info.php .

Výsledek by měl být podobný výše uvedenému snímku obrazovky.

Krok 3 – Instalace Nginx

Nainstalujte Nginx pomocí následujícího příkazu apt-get:

apt-get install nginx

Krok 4 – Konfigurace Nginx

Jakmile je Nginx nainstalován, nakonfigurujte Nginx tak, aby fungoval jako reverzní proxy pro webový server Apache, který běží na portu 8080.

Přejděte do konfiguračního adresáře nginx a upravte soubor "nginx.conf":

cd /etc/nginx/
vim nginx.conf

Povolte kompresi Gzip pro Nginx zrušením komentáře řádků gzip:

        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

nejdůležitější je:

zapněte gzip :pro zapnutí komprese gzip.

gzip_types :je seznam typů MIME, u kterých chcete změnit kompresi.

gzip_proxed any :je povolení komprese pro požadavek přes proxy.

Přímo pod nastavením gzip přidejte tato nastavení mezipaměti proxy:

        # Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;

Adresář mezipaměti proxy je /var/cache.

úrovně je direktiva, která říká Nginxu, jak je mezipaměť uložena v systému souborů.

key_zone je pouze název zóny mezipaměti, můžete si ji vybrat libovolně, ale do názvu nepřidávejte speciální znaky nebo mezery. Budu používat název „reverse_cache "zde.

."

Uložit a ukončit.

Nyní nakonfigurujeme virtuálního hostitele v adresáři "/etc/nginx/sites-available".

V tomto tutoriálu vytvořím nový konfigurační soubor virtuálního hostitele s názvem „reverse.conf“. Právě jste se dostali do adresáře a vytvořili nový soubor pomocí vim:

cd /etc/nginx/sites-available
vim reverse.conf

Vložte konfiguraci níže:

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

    location ~ /\.ht {
        deny all;
    }
}

Uložte a ukončete.

Poté aktivujte novou konfiguraci virtuálního hostitele:

ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/

Nakonec otestujeme konfiguraci nginx a restartujeme nginx:

nginx -t
systemctl restart nginx

Nginx je nyní nakonfigurován jako reverzní proxy. Můžete to otestovat pomocí curl:

curl -I www.reverse.com

Cache-Control:no-cache znamená index.html a všechny soubory s příponou .html se neuloží do mezipaměti.

Další test:

curl -I www.reverse.com/info.php

X-Cache:HIT znamená, že stránka je obsluhována mezipamětí Nginx.

Krok 5 – Konfigurace protokolování

V tomto kroku nakonfiguruji apache tak, aby zaznamenával skutečnou IP adresu návštěvníka namísto místní IP.

Nainstalujte prosím modul apache „libapache2-mod-rpaf“ a upravte konfigurační soubor modulu:

sudo apt-get install libapache2-mod-rpaf
cd /etc/apache2/mods-available/
vim rpaf.conf

Přidejte IP serveru na řádek 10 . Můj server má IP:192.168.1.108.

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

Uložte a ukončete.

Nyní restartujte apache:

systemctl restart apache2

Otestujte rpaf zobrazením protokolu přístupu Apache pomocí příkazu tail:

tail -f /var/log/apache2/access.log

To je vše.

Nginx je nainstalován jako reverzní proxy před webový server Apache. Pokud si návštěvník vyžádá soubor php, požadavek bude předán Apache na portu 8080 a skutečného ip návštěvníka můžete vidět v souboru protokolu Apache.

Závěr

Nginx je rychlý a oblíbený webový server s nízkou spotřebou paměti, který může fungovat jako webový server a reverzní proxy pro protokoly HTTP a HTTPS. Reverzní proxy Nginx pro Apache je nastavení, které používá Nginx jako frontend a Apache jako backend. Nginx zpracovává příchozí požadavek z prohlížeče a předává jej backendu Apache. V tomto tutoriálu jsme nastavili konfiguraci pro nginx jako http cache, která ukládá požadavky na soubory PHP a obrázky do mezipaměti.


Ubuntu
  1. Jak nainstalovat Odoo 10 na Ubuntu 16.04 s Nginx jako reverzní proxy

  2. Jak nainstalovat Flectru na Ubuntu 20.04 s Nginx jako reverzní proxy

  3. Jak nainstalovat Odoo 12 na Ubuntu 18.04 s Nginx jako reverzní proxy

  1. Jak nainstalovat Odoo 10 na Ubuntu 16.04 s Apache jako reverzní proxy

  2. Jak nainstalovat Odoo 11 na Ubuntu 16.04 s Nginx jako reverzní proxy

  3. Jak nainstalovat Odoo 12 na Ubuntu 18.04 s Apache jako reverzní proxy

  1. Jak nakonfigurovat Nginx Reverse Proxy pro Kibana

  2. Jak nastavit Nginx jako reverzní proxy na Ubuntu 20.04

  3. Jak nainstalovat Odoo 14 na Ubuntu 20.04 s Apache jako reverzní proxy