Ricerca nel sito web

Come configurare Nginx come server Web e proxy inverso per Apache su CentOS 8


Su questa pagina

  1. Prerequisiti
  2. Installa Apache e PHP
  3. Configura il server Web Apache
  4. Installa il server Web Nginx
  5. Configura Nginx come proxy inverso per Apache
  6. Conclusione

Come sai, Apache e Nginx sono entrambi server Web gratuiti, open source e potenti in tutto il mondo. Apache è noto per la sua potenza mentre Nginx è noto per la sua velocità. Entrambi hanno alcuni svantaggi e vantaggi. Nginx utilizza PHP-FPM per caricare i file PHP mentre Apache carica PHP da solo. Apache viene utilizzato per la parte dinamica del sito Web mentre Nginx serve file statici come grafica, CSS e file js.

È una buona idea utilizzarli entrambi su un singolo server e ottenere vantaggi da entrambi. In questo tutorial, ti mostreremo come utilizzare Nginx come server Web e proxy inverso per il server Web Apache su CentOS 8.

Prerequisiti

  • Un server che esegue CentOS 8.
  • Un nome di dominio indicato con l'IP del tuo server.
  • Una password di root è configurata sul server.

Installa Apache e PHP

Innanzitutto, dovrai installare il server web Apache e PHP nel tuo server. Puoi installarlo usando il seguente comando:

dnf install httpd php php-cli -y

Al termine dell'installazione, avviare il servizio Apache e abilitarlo all'avvio al riavvio del sistema con il seguente comando:

systemctl start httpd
systemctl enable httpd

Configura il server Web Apache

Per impostazione predefinita, il server Web Apache è in ascolto sulla porta 80. Pertanto, sarà necessario configurare il server Web Apache in modo che ascolti sulla porta 8080. È possibile farlo modificando il file di configurazione principale di Apache:

nano /etc/httpd/conf/httpd.conf

Cambia il post da 80 a 8080 come mostrato di seguito:

Listen 8080

Salva e chiudi il file, quindi riavvia il servizio Apache per applicare le modifiche:

systemctl restart httpd

Successivamente, controlla la porta di ascolto di Apache con il seguente comando:

ss -antpl | grep httpd

Dovresti ottenere il seguente output:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))

Successivamente, crea un file info.php all'interno della directory root web di Apache:

nano /var/www/html/info.php

Aggiungi la seguente riga:

<?php phpinfo(); ?>

Salva e chiudi il file quando hai finito.

Successivamente, apri il tuo browser web e accedi all'URL http://your-server-ip:8080/info.php. Dovresti vedere la seguente pagina:

Installa il server Web Nginx

Successivamente, dovrai installare il pacchetto Nginx sul tuo server. Puoi installarlo con il seguente comando:

dnf install nginx -y

Una volta installato Nginx, avvia il servizio Nginx e abilitalo per l'avvio al riavvio del sistema con il seguente comando:

systemctl start nginx
systemctl enable nginx

Configura Nginx come proxy inverso per Apache

Ora, dovrai configurare Nginx come proxy inverso per inoltrare tutte le richieste in arrivo sulla porta 80 al server Web Apache che è in ascolto sulla porta 8080.

Innanzitutto, crea un nuovo file di configurazione dell'host virtuale Nginx con il seguente comando:

nano /etc/nginx/conf.d/proxy.conf

Aggiungi le seguenti righe:

server {
    listen 80;
    server_name test.example.com;

    location ~ \.php$ {
        proxy_pass http://your-server-ip:8080;
        proxy_set_header Host $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;
    }
}

Salva e chiudi il file quando hai finito. Quindi, riavvia il server web Nginx per applicare le modifiche:

systemctl restart nginx

Ora, apri il tuo browser web e accedi all'URL http://test.example.com/info.php. Dovresti vedere la seguente pagina:

Come puoi vedere, PHP è servito da un server web Nginx.

Conclusione

Nella guida sopra, hai imparato come configurare Nginx come server web e proxy inverso per Apache. Spero che questo ti aiuti ad aumentare le prestazioni del tuo sito web.