GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Nginx come proxy inverso per Apache su Ubuntu 15.10

Nginx o "engine-x " è un server Web ad alte prestazioni con un utilizzo di memoria ridotto, creato da Igor Sysoev nel 2002. Nginx non è solo un server Web, può essere utilizzato come proxy inverso per molti protocolli come HTTP, HTTPS, POP3, SMTP e IMAP e anche come bilanciatore del carico e cache HTTP.

Apache è il software per server Web più popolare gestito dalla comunità open source sotto Apache Software Foundation. Sono disponibili molti moduli aggiuntivi per apache come il supporto WebDav o firewall di applicazioni Web come mod_security e supporta molti linguaggi di programmazione Web come Perl, Python, PHP tramite moduli nativi o interfacce cgi, fcgi e FPM.

In questo tutorial, installerò e configurerò Nginx come proxy inverso di memorizzazione nella cache per un server Web Apache su Ubuntu 15.10, Nginx viene utilizzato come front-end e Apache come back-end. Nginx verrà eseguito sulla porta 80 per rispondere alle richieste di un utente/browser, la richiesta verrà quindi inoltrata al server Apache in esecuzione sulla porta 8080.

Fase 1:installa Apache e PHP

Accedi al tuo server Ubuntu con SSH e diventa utente root eseguendo:

sudo su

Quindi installa Apache con il comando apt-get:

apt-get install apache2

Una volta installato Apache, dobbiamo installare PHP come modulo Apache per questo tutorial:

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

Fase 2 - Configura Apache e PHP

Per impostazione predefinita, apache è in ascolto sulla porta 80. Dobbiamo configurare apache per l'esecuzione sulla porta 8080 per la nostra configurazione del proxy poiché la porta 80 verrà utilizzata da nginx in seguito.

Se desideri modificare la porta per il server web apache, devi modificare il file di configurazione di apache "/etc/apache2/ports.conf", quindi procedere con la configurazione dell'host virtuale in "/etc/apache2/sites-available/ " directory.

Per prima cosa cambia la porta per apache in 8080 modificando il file "ports.conf" con l'editor vim:

vim /etc/apache2/ports.conf

In linea 5 , cambia la porta 80 in 8080.

Listen 8080

Salva ed esci.

Ora vai alla directory virtualhost e modifica il file "000-default.conf" :

cd sites-available/
vim 000-default.conf

Assicurati che la tua configurazione sia la stessa di seguito:

<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>

Salva ed esci.

Quindi, testa la configurazione e riavvia Apache:

apachectl configtest
systemctl restart apache2

Infine verifichiamo che apache e php funzionino. Crea un nuovo file con il nome "info.php" nella directory "/var/www/html/".

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

Visita il tuo sito www.reverse.com:8080/info.php .

Il risultato dovrebbe essere simile allo screenshot sopra.

Passaggio 3:installa Nginx

Installa Nginx con il seguente comando apt-get:

apt-get install nginx

Passaggio 4 - Configura Nginx

Una volta installato Nginx, configura Nginx in modo che agisca come proxy inverso per il server Web Apache in esecuzione sulla porta 8080.

Vai alla directory di configurazione di nginx e modifica il file "nginx.conf":

cd /etc/nginx/
vim nginx.conf

Abilita la compressione Gzip per Nginx decommentando le righe 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;

il più importante è :

gzip su :per attivare la compressione gzip.

gzip_types :è l'elenco dei tipi MIME di cui vuoi attivare la compressione.

gzip_proxied qualsiasi :abilita la compressione per la richiesta proxy.

Proprio sotto le impostazioni di gzip, aggiungi queste impostazioni della cache del proxy:

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

La directory per la cache del proxy è /var/cache.

livelli è una direttiva che dice a Nginx come viene salvata la cache nel file system.

key_zone è solo un nome della zona cache, puoi sceglierlo liberamente, ma non aggiungere caratteri speciali o spazi bianchi nel nome. Userò il nome "cache_reverse " qui.

Salva ed esci.

Ora configureremo un virtualhost nella directory "/etc/nginx/sites-available".

In questo tutorial creerò un nuovo file di configurazione di virtualhost chiamato "reverse.conf". Sono appena arrivato alla directory e crea un nuovo file con vim:

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

Incolla la configurazione di seguito:

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;
    }
}

Salva ed esci.

Quindi attiva la nuova configurazione di virtualhost:

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

Infine testeremo la configurazione di nginx e riavvieremo nginx:

nginx -t
systemctl restart nginx

Nginx è configurato come proxy inverso ora. Puoi testarlo con curl:

curl -I www.reverse.com

Controllo cache:nessuna cache significa che index.html e tutti i file terminati con .html non verranno memorizzati nella cache.

Un altro test:

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

X-Cache:HIT significa che la pagina è servita dalla cache di Nginx.

Passaggio 5:configurazione della registrazione

In questo passaggio, configurerò Apache per registrare l'ip reale del visitatore anziché l'IP locale.

Installa il modulo apache "libapache2-mod-rpaf" e modifica il file di configurazione del modulo:

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

Aggiungi l'IP del server alla riga 10 . Il mio server ha l'IP:192.168.1.108.

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

Salva ed esci.

Ora riavvia Apache :

systemctl restart apache2

Prova rpaf visualizzando il log di accesso di Apache con il comando tail:

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

Questo è tutto.

Nginx viene installato come proxy inverso davanti al server Web Apache. Se un visitatore richiede un file php, la richiesta verrà passata ad apache sulla porta 8080 e puoi vedere il vero visitatore ip sul file di log di apache.

Conclusione

Nginx è un server Web veloce e popolare con un utilizzo di memoria ridotto che può fungere da server Web e proxy inverso per il protocollo HTTP e HTTPS. Il proxy inverso Nginx per apache è una configurazione che utilizza Nginx come front-end e apache come back-end. Nginx gestisce la richiesta in arrivo dal browser e la passa al backend di Apache. In questo tutorial, abbiamo impostato una configurazione per nginx come cache http che memorizza nella cache le richieste e le immagini di file PHP.


Ubuntu
  1. Come configurare Nginx come proxy inverso su Ubuntu 20.04

  2. Come installare Odoo 10 su Ubuntu 16.04 con Apache come proxy inverso

  3. Come installare Odoo 11 su Ubuntu 16.04 con Nginx come proxy inverso

  4. Come installare Odoo 12 su Ubuntu 18.04 con Apache come proxy inverso

  5. Come installare Odoo 14 su Ubuntu 20.04 con Apache come proxy inverso

Come installare nginx come proxy inverso per Apache su Ubuntu 16.04

Come installare Rocket.chat con proxy inverso nginx su Ubuntu 20.04

Come configurare Nginx come proxy inverso per Apache su Debian 11

Come installare Nginx su Ubuntu 15.04

Come configurare Nginx come proxy inverso per Apache su Ubuntu 18.04 VPS

Come installare NGINX come proxy inverso per Apache su Ubuntu 18.04