In questa guida impareremo come installare Nginx in OpenSUSE Leap 15.3 e configurarlo come server proxy. Configurare un host virtuale Nginx che invia tramite proxy una richiesta da un dominio a un servizio in ascolto su una porta.
Contenuti correlati
- Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04
- Come installare lo stack Apache PHP 7.4 (LAMP) su Rocky Linux/Centos 8
- Come installare e configurare PHP e Nginx (LEMP) su Debian 11
- Come installare e configurare PHP e Apache (stack LAMP) su Debian 11
Indice dei contenuti
- Assicurarsi che il server sia aggiornato
- Installazione di Nginx su OpenSUSE Leap 15.3
- Avvio e abilitazione del servizio Nginx in OpenSUSE
- Configurazione del servizio proxy
- Creazione dell'host virtuale Nginx per inoltrare la richiesta
- Test della configurazione
1. Garantire che il server sia aggiornato
Prima di procedere, è sempre buona norma assicurarsi che il server sia aggiornato. Usa questi comandi per raggiungere questo obiettivo
sudo zypper refresh
sudo zypper update -y
2. Installazione di Nginx su OpenSUSE Leap 15.3
Nginx, come server web stabile ad alte prestazioni e con un consumo di risorse molto basso. Nginx ha un'architettura asincrona molto più scalabile, basata sugli eventi.
Nginx è disponibile nei repository UpenSUSE predefiniti. Installalo usando questo comando:
sudo zypper install -y nginx
Conferma l'installazione di nginx
~> zypper info nginx
Loading repository data...
Reading installed packages...
Information for package nginx:
------------------------------
Repository : Main Repository
Name : nginx
Version : 1.19.8-3.6.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed : Yes
Status : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary : A HTTP server and IMAP/POP3 proxy server
Description :
nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
3. Avvio e abilitazione del servizio nginx
Il servizio Nginx installato non viene avviato per impostazione predefinita. Per avviare il servizio, usa questo comando:
sudo systemctl start nginx
Conferma che il servizio è attivo e funzionante utilizzando questo comando:
~> sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 31741 (nginx)
Tasks: 2 (limit: 4587)
CGroup: /system.slice/nginx.service
├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
└─31742 nginx: worker process
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.
Per abilitare il servizio all'avvio, utilizzare questo comando:
sudo systemctl enable nginx
4. Configurazione del servizio per il proxy
In questo esempio utilizzeremo un semplice servizio che ho già creato. Ho un servizio Golang qui, ma sentiti libero di usare il tuo servizio.
➜ /tmp/gosimple
2021/12/20 23:38:34 service running, listening on 3000
Testa il servizio
➜ curl -iL http://127.0.0.1:3000/
HTTP/1.1 200 OK
Date: Mon, 20 Dec 2021 20:39:01 GMT
Content-Length: 12
Content-Type: text/plain; charset=utf-8
Hello World!
5. Creazione dell'host virtuale Nginx per inoltrare la richiesta
Nginx ti consente di servire più siti utilizzando host virtuali. Il concetto di host virtuali consente più di un sito Web su un sistema o server Web. I server si differenziano per il loro nome host. I visitatori del sito Web vengono indirizzati dal nome host o dall'indirizzo IP all'host virtuale corretto. L'hosting virtuale consente alle aziende che condividono un server di avere ciascuno il proprio nome di dominio.
Un server Nginx può essere utilizzato per incapsulare i dettagli di configurazione e ospitare più di un dominio su un singolo server. Creeremo un host virtuale per il nostro sito (site1.citizix.com
).
Le configurazioni degli host virtuali Nginx sono archiviate nella directory /etc/nginx/conf.d/
. Creiamo una configurazione per il nostro sito:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Aggiungi il seguente contenuto
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /opt/simpleapp;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_redirect off;
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-Host $server_name;
proxy_pass http://127.0.0.1:3000;
}
}
Riavviamo nginx per applicare la configurazione:
sudo systemctl restart nginx
6. Testare la configurazione
In questo esempio utilizzeremo il dominio site1.citizix.com
per l'host virtuale ma sii libero di utilizzare il dominio di tua scelta. Si noti che il DNS per il dominio da utilizzare dovrebbe essere già configurato per puntare all'indirizzo IP del server. Confermalo con:
dig -t A site1.citizix.com
Se non hai ancora configurato le tue impostazioni DNS o semplicemente non vuoi che il sito sia ancora attivo, puoi modificare il file hosts del tuo computer. Per fare ciò, usa il seguente comando nella CLI del tuo computer locale
sudo vim /etc/hosts
Quindi, aggiungi l'indirizzo IP del tuo vero server seguito dal nome di dominio che stai configurando, ad esempio:
10.2.11.11 site1.citizix.com
Con questa configurazione possiamo fare una richiesta al nostro dominio. Per me funziona bene!
➜ curl -iL http://site1.citizix.com
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Dec 2021 20:51:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 12
Connection: keep-alive
Hello World!
Conclusione
Siamo riusciti a installare e configurare Nginx per fungere da proxy in questa guida!