User Tools

Site Tools


Sidebar

documentation:systemes:services:nginx:installation

NGinx

Dans cet article nous allons voir comment déployer un serveur NGinx afin d'y greffer un site SPA et un reverse proxy pour fournir une API sous NodeJS.

Le système utilisé pour la rédaction de cette documentation est Ubuntu trusty.

Installation

Ici le paquet nginx-light sera suffisant.

Il propose les modules suivants :

  • Core,
  • Access,
  • Auth Basic,
  • Auto Index,
  • Charset,
  • Empty GIF,
  • FastCGI,
  • Gzip,
  • Headers,
  • Index,
  • Log,
  • Map,
  • Proxy,
  • Rewrite,
  • Upstream

Pour l'installer :

# sudo apt-get install nginx-light

Configuration des vhosts

Site statique

Ici nous allons créer un vhost pour le www, et pour sa version sans les www qui pointera dans le même dossier.

On pourrait simplement se contenter d'utiliser le vhost par défaut mais personnellement je préfère définir des vhosts bien précis et laisser le vhost par défaut pour les cas non existant (un sous domaine non défini, lorsque l'utilisateur tape directement le serveur par son IP…).

Tous les vhosts doivent être créés dans le dossier /etc/nginx/sites-available. Personnellement je le nome par le nom du vhost qu'ils définissent, plus simple pour s'y retrouver.

Je vais donc créer le fichier www.monsite.fr :

$ sudo nano -w /etc/nginx/sites-available/www.monsite.fr

Le contenu du fichier :

server {
        listen 80 default_server;

        # Emplacement des fichiers
        root /usr/share/nginx/www;
        index index.html index.htm;

        server_name www.monsite.fr monsite.fr;

        location / {
                try_files $uri $uri/ =404;
        }
}

On active le vhost :

$ sudo ln -s /etc/nginx/sites-available/www.monsite.fr /etc/nginx/sites-enabled/www.monsite.fr

On vérifie que la configuration est valide avant de relancer nginx :

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si tout est ok on peut alors relancer nginx :

$ sudo service nginx reload

Reverse proxy

Pour un reverse proxy la configuration est tout aussi simple.

Créons le fichier api.monsite.fr :

$ sudo nano -w /etc/sites-available/api.monsite.fr

Son contenu :

server {
        listen 80 ;

        server_name api.monsite.fr;

        location / {
                # set client body size to 92M #
                client_max_body_size 92M;
        
                proxy_pass http://127.0.0.1:3000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        
    }
}

Comme tout à l'heure, on l'active :

$ sudo ln -s /etc/nginx/sites-available/api.monsite.fr /etc/nginx/sites-enabled/api.monsite.fr

On vérifie la configuration :

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Puis on relance nginx :

$ sudo service nginx reload
documentation/systemes/services/nginx/installation.txt · Last modified: 2017/07/14 19:45 (external edit)