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
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;
worker_processes 8;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
worker_processes 8;
pid /var/run/nginx.pid;
events {
worker_connections 10240;
use epoll;
worker_connections 10240;
}
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
On ajustera ainsi le max open files :
~~~
# cat /etc/default/nginx
ulimit -n 305855
~~~
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
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_types text/css application/x-javascript text/javascript;
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;
# 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
~~~
### Stats Munin
## Munin
Ajouter dans la configuration Nginx :
@ -246,7 +271,7 @@ Attention, ssl_certificate doit contenir toute la chaîne de certification, donc
~~~
# 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
~~~