Aller au contenu

NGINX

NGINX est un serveur Web et un reverse proxy.

Installation

  • apt install nginx

Configuration

  • nginx.conf
    • Fichier de configuration globale du serveur.
  • mime-types Fichier configuration des sites web
  • /etc/nginx/sites-available/

Fichier configuration des sites

Répertoire : /etc/nginx/sites-available/

De sites-available à sites-enabled : ln -s /etc/nginx/sites-available/001-rocheralexandre.com /etc/nginx/sites-enabled/

Reverse proxy

  • vim /etc/nginx/sites-available/01-www.example.com.conf

install :

nginx, php7.3, php-fpm

Reverse proxy

dans : /etc/nginx/sites-available/01-www.example.com.conf

upstream alex_wordpress{ # nom du serveur
    server 127.0.0.1:8080; # ip et port du serveur à 
}

upstream backend_apache{
    server 127.0.0.1:7080;
}

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

    location /jenkins {
        include proxy_params;
        proxy_pass http://backend_jenkins;
    }

    location / {
        include proxy_params;
        proxy_pass http://backend_apache;
    }
}

Explication

upstream backend_jenkins{}

  • définit un bloc “upstream” dont le nom est backend_jenkins. Ce bloc contient les adresses des serveurs de backend. Si plusieurs adresses sont configurées (une directive server par ligne), nginx va automatiquement répartir la charge entre ces serveurs

server {}

  • c’est l’équivalent du d’Apache, c’est dans ce bloc que vous allez configurer votre site

listen

  • spécifie l’IP et le port correspondant

server_name

  • précise les domaines valables pour ce site. Plusieurs domaines peuvent être précisés, séparés par des espaces

location /jenkins {}

  • précise les règles qui s’appliquent aux adresses qui commencent par “/jenkins” (après le nom de domaine) comme http://www.example.com/jenkins

proxy_pass http://backend_jenkins;

  • indique d’agir en tant que proxy et de transmettre les requêtes avec le protocole http vers les serveurs définis dans le bloc upstream “backend_jenkins”

include proxy_params;

  • inclut les directives présentes dans le fichier /etc/nginx/proxy_params

Pourquoi proxy_params

Le fichier proxy_params contient les directives les plus courantes pour les proxy web. Elles indiquent les entêtes HTTP à transmettre.

Cela permet à apache de savoir qu'un proxy lui transmet les requêtes et ainsi de connaître la véritable IP des clients.

Source