Ajout infos sur HowtoNginx

This commit is contained in:
Gregory Colpart 2017-06-21 01:11:54 +02:00
parent afdb7fc0eb
commit e48622132e

View file

@ -1,32 +1,56 @@
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** ---
categories: web
title: Howto Nginx
...
# Howto Nginx * Documentation : <https://nginx.org/en/docs/>
<http://wiki.nginx.org/Configuration> [Nginx](https://nginx.org/) est un serveur [HTTP](HowtoHTTP) léger et puissant.
## Installation ## Installation
Sous Debian on peut installer la version 1.2.1 (Wheezy) ou 1.6.2 (Jessie) :
~~~ ~~~
# aptitude install nginx # apt install nginx
$ /usr/sbin/nginx -v
nginx version: nginx/1.6.2
~~~ ~~~
## Configuration ## Configuration de base
### Configuration de base Fichiers de configuration :
La configuration principale se fait dans le fichier /etc/nginx/nginx.conf /etc/nginx/
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-utf
La configuration principale se fait dans le fichier `/etc/nginx/nginx.conf` :
~~~ ~~~
user www-data; user www-data;
worker_processes 8; worker_processes 8;
pid /var/run/nginx.pid;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events { events {
worker_connections 10240; use epoll;
worker_connections 10240;
} }
http { http {
@ -34,19 +58,20 @@ http {
[...] [...]
~~~ ~~~
L'un des paramètres à ajuster immédiatement est le *worker_processes*. Les _worker processes_ sont les processus fils lancés par le père (le coeur de nginx), ce sont eux qui font tout le travail, ils ne sont pas multi-threadé. *Il est recommandé de mettre autant de _worker processes_ que de cores disponibles sur votre serveur.* (cf /proc/cpuinfo) L'un des paramètres à ajuster immédiatement est le *worker_processes*. Les _worker processes_ sont les processus fils lancés par le père (le coeur de nginx), ce sont eux qui font tout le travail, ils ne sont pas multi-threadés : il est recommandé de mettre autant de _worker processes_ que de cores disponibles sur votre serveur.
~~~ ~~~
worker_processes 16; # mkdir /etc/systemd/system/nginx.service.d/
# vim /etc/systemd/system/nginx.service.d/override.conf
[Service]
LimitNOFILE=10240
# systemctl daemon-reload
# systemctl restart nginx
~~~ ~~~
On peut également mettre des paramètres système dans le fichier /etc/defaut/nginx TODO : à voir si on peut pas remplacer par worker_rlimit_nofile : lire http://siawyoung.com/coding/sysadmin/nginx/core-nginx-configuration-http-load-testing.html
On ajustera ainsi le max open files :
~~~
# cat /etc/default/nginx
ulimit -n 305855
~~~
Enfin, on peut déléguer un certain nombre d'options générales dans des fichiers /etc/nginx/conf.d/*.conf Enfin, on peut déléguer un certain nombre d'options générales dans des fichiers /etc/nginx/conf.d/*.conf
@ -59,7 +84,7 @@ server_tokens off;
# GZIP # GZIP
gzip_types text/css application/x-javascript text/javascript; gzip_types text/css application/x-javascript text/javascript;
gzip_comp_level 5; gzip_comp_level 5;
# <http://blog.leetsoft.com/2007/7/25/nginx-gzip-ssl> # http://blog.leetsoft.com/2007/7/25/nginx-gzip-ssl
gzip_buffers 16 8k; gzip_buffers 16 8k;
# HTTP cache # HTTP cache
@ -79,7 +104,7 @@ Avant de redémarrer le serveur, vérifier que vous n'ayez pas introduit des err
configuration file /etc/nginx/nginx.conf test is successful configuration file /etc/nginx/nginx.conf test is successful
~~~ ~~~
### Stats Munin ## Munin
Ajouter dans la configuration Nginx : Ajouter dans la configuration Nginx :
@ -246,7 +271,7 @@ Attention, ssl_certificate doit contenir toute la chaîne de certification, donc
~~~ ~~~
# cd /tmp # cd /tmp
# wget <https://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem> # wget https://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem
# cat sub.class1.server.sha2.ca.pem >> /etc/ssl/certs/ssl.example.com.crt # cat sub.class1.server.sha2.ca.pem >> /etc/ssl/certs/ssl.example.com.crt
~~~ ~~~