Hostwinds Tutoriels

Résultats de recherche pour:


Table des matières


Conditions préalables
Configuration Nginx
Tester la configuration Nginx

Proxy inverse Nginx avec SSL

Mots clés: Cloud Servers,  SSL,  VPS 

Conditions préalables
Configuration Nginx
Tester la configuration Nginx

Nginx est un outil puissant. Il vous permet de servir plusieurs applications, sites Web, applications équilibrées de charge et bien plus encore. Cette flexibilité est entièrement alimentée par un système de configuration relativement simple utilisant des fichiers de configuration presque-humains lisibles. Ce guide démontrera comment configurer un proxy inverse nginx avec SSL sur un VPS Cloud Hostwinds.

Conditions préalables

Ce guide assumera une compréhension générale de l'utilisation d'un système basé sur Linux via une ligne de commande et assumera davantage les conditions préalables suivantes:

  • Ubuntu 18.04
  • Utilisateur non root
  • Application fonctionnant sur le port de proxy inverse souhaité (ce guide prendra en charge le port 3000)
  • Enregistrement de nom DNS A pour le domaine souhaité
  • Certificat SSL pour le domaine

Configuration Nginx

Le package Nginx-complet utilise par défaut un environnement dynamique d'hôte virtuel partagé. Les fichiers de configuration de chaque hôte virtuel sont disponibles ici:

/etc/nginx/sites-available/

Cet emplacement aura un fichier appelé défaut disponible à utiliser comme modèle de base. Cependant, nous créerons manuellement un nouveau fichier de configuration dans ce guide et le peuplerons si nécessaire. Une fois connecté comme utilisateur non root, émettez cette commande pour lancer le processus:

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

Assurez-vous de remplacer Domaine-TLD avec le domaine que vous utilisez réellement.

Ensuite, nous proposons de modifier ce fichier pour effectuer les tâches dont nous avons besoin. Nous allons utiliser vigueur dans ce guide en tant qu'éditeur de texte. Vous pouvez utiliser nano ou tout autre éditeur de texte basé sur vos préférences personnelles.

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

Maintenant que le fichier existe, ajoutez le texte suivant à ce fichier. Modifiez le texte indiqué pour référence à votre domaine, le port Votre application utilise et vos chemins de certificats SSL. Ce fichier sera la principale configuration pour le proxy inverse:

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

Enregistrez le fichier et quittez l'éditeur de texte.

Tester la configuration Nginx

Maintenant que la configuration est créée, nous devons dire à Nginx de vérifier le fichier au chargement. Nous ferons un lien symbolique:

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

Ensuite, nous testons la configuration avant de redémarrer le service système Nginx

sudo nginx -t

Ensuite, il doit exécuter le test et afficher le message suivant en cas de succès:

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

Nous savons maintenant que le fichier de configuration ne provoquera pas de crash, alors redémarrons le service NGinx et testez l'application.

sudo systemctl restart nginx

Vous devriez maintenant avoir accès à l'application s'exécutant sur le port défini en naviguant à la Domaine-TLD comme illustré dans le fichier de configuration Nginx créé précédemment.

Écrit par Hostwinds Team  /  juin 14, 2019