Hostwinds Tutorial

Cerca risultati per:


Sommario


Prerequisiti
Configurazione Nginx
Prova la configurazione di Nginx

Proxy inverso Nginx con SSL

Tag: Cloud Servers,  SSL,  VPS 

Prerequisiti
Configurazione Nginx
Prova la configurazione di Nginx

Nginx è un potente strumento. Ti consente di servire più app, siti Web, applicazioni bilanciate dal carico e molto altro. Questa flessibilità è tutto alimentata da un sistema di configurazione relativamente semplice che utilizza file di configurazione leggibili da quasi umani. Questa guida dimostrerà come impostare un proxy inverso nginx con SSL su A Hostwinds Cloud VPS.

Prerequisiti

Questa guida assumerà una comprensione generale di utilizzare un sistema basato su Linux tramite la riga di comando e assumerà ulteriormente i seguenti prerequisiti:

  • Ubuntu 18.04
  • Utente non root
  • App in esecuzione sulla porta proxy inversa desiderata (questa guida presume la porta 3000)
  • Record di nome DNS A per dominio desiderato
  • Certificato SSL per il dominio

Configurazione Nginx

Il pacchetto completo di Nginx utilizza per impostazione predefinita un ambiente host virtuale condiviso dinamico. I file di configurazione per ogni host virtuale sono disponibili per l'uso qui:

/etc/nginx/sites-available/

Questa posizione avrà un file chiamato predefinita Disponibile per l'uso come modello di base. Tuttavia, creeremo manualmente un nuovo file di configurazione in questa Guida e lo farmo popolare secondo necessità. Una volta effettuato l'accesso come utente non root, emesso questo comando per avviare il processo:

sudo touch /etc/nginx/sites-available/domain.tld

Assicurati di sostituire Domain-TLD. con il dominio che stai effettivamente utilizzando.

Successivamente, spostiamo per modificare quel file per eseguire le attività che abbiamo bisogno da fare. Usereremo vim in questa guida come editor di testo. Puoi usare nano o qualsiasi altro editor di testo in base alle tue preferenze personali.

sudo vim /etc/nginx/sites-available/domain.tld

Ora che il file esiste aggiungi il seguente testo a questo file. Modificare il testo indicato per fare riferimento al tuo dominio, la porta L'app utilizza e i percorsi del certificato SSL. Questo file sarà la configurazione principale per il proxy inversa:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
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;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

Salva il file e esci dall'editor di testo.

Prova la configurazione di Nginx

Ora che la configurazione è stata creata, dobbiamo dire a Nginx di controllare il file al caricamento. Faremo un collegamento simbolico:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

Successivamente, testiamo la configurazione prima di riavviare il servizio di sistema Nginx

sudo nginx -t

Successivamente, dovrebbe eseguire il test e visualizzare il seguente messaggio in caso di esito positivo:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ora sappiamo che il file di configurazione non causerà un arresto anomalo, quindi riavvia il servizio Nginx e testare l'app.

sudo systemctl restart nginx

Ora dovresti avere accesso all'app che funziona sulla porta definita navigando verso il Domain-TLD. come illustrato nel file di configurazione Nginx creato in precedenza.

Scritto da Hostwinds Team  /  giugno 14, 2019