Suite relecture
This commit is contained in:
parent
932a9cc1ab
commit
8fc5a0868a
|
@ -95,7 +95,7 @@ Fichiers de configuration :
|
|||
└── X.conf -> ../sites-available/X.conf
|
||||
~~~
|
||||
|
||||
La configuration se trouve dans le fichier `/etc/apache2/apache2.conf` qui inclut de nombreux fichiers séparés.
|
||||
La configuration principale se trouve dans le fichier `/etc/apache2/apache2.conf` qui inclut de nombreux fichiers séparés.
|
||||
|
||||
Nous activons toujours au minimum les modules suivants :
|
||||
|
||||
|
@ -147,6 +147,16 @@ Pour la [#gestion-des-droits]() on ajoute dans le fichier `/etc/apache2/envvars`
|
|||
umask 007
|
||||
~~~
|
||||
|
||||
### Valider la configuration
|
||||
|
||||
Avant de redémarrer le serveur, vérifier que vous n'ayez pas introduit des erreurs de syntaxes dans la configuration :
|
||||
|
||||
~~~
|
||||
# apache2ctl configtest
|
||||
Syntax OK
|
||||
~~~
|
||||
|
||||
|
||||
## VirtualHost
|
||||
|
||||
Le terme **VirtualHost** correspond à la séparation de plusieurs sites sur un même serveur HTTP.
|
||||
|
|
125
HowtoNginx.md
125
HowtoNginx.md
|
@ -15,8 +15,11 @@ Nous utilisons les paquets Debian officiels (version 1.10.3 sous Stretch et Jess
|
|||
~~~
|
||||
# apt install nginx-full
|
||||
|
||||
$ /usr/sbin/nginx -v
|
||||
$ /usr/sbin/nginx -V
|
||||
nginx version: nginx/1.10.3
|
||||
built with OpenSSL 1.1.0f 25 May 2017
|
||||
TLS SNI support enabled
|
||||
configure arguments: --with-cc-opt='-g -O2 […]
|
||||
|
||||
systemctl status nginx
|
||||
● nginx.service - A high performance web server and a reverse proxy server
|
||||
|
@ -71,34 +74,15 @@ Fichiers de configuration :
|
|||
│ └── snakeoil.conf
|
||||
├── uwsgi_params
|
||||
└── win-utf
|
||||
|
||||
/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` :
|
||||
La configuration principale se fait dans le fichier `/etc/nginx/nginx.conf` qui inclut plusieurs fichiers séparés :
|
||||
|
||||
~~~
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
pid /var/run/nginx.pid;
|
||||
pid /run/nginx.pid;
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
|
||||
events {
|
||||
use epoll;
|
||||
|
@ -106,43 +90,95 @@ events {
|
|||
}
|
||||
|
||||
http {
|
||||
keepalive_timeout 15;
|
||||
[…]
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
types_hash_max_size 2048;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_dhparam /etc/ssl/dhparam.pem;
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
~~~
|
||||
|
||||
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 cœur 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 ou bien de laisser à « auto ».
|
||||
|
||||
Enfin, on peut déléguer un certain nombre d'options générales dans des fichiers /etc/nginx/conf.d/*.conf
|
||||
Le fichier `/etc/nginx/conf.d/z-evolinux-defaults.conf` contient nos optimisations basiques :
|
||||
|
||||
~~~
|
||||
# cat /etc/nginx/conf.d/evolix.conf
|
||||
|
||||
# disable Nginx version
|
||||
server_tokens off;
|
||||
server_names_hash_max_size 512;
|
||||
server_names_hash_bucket_size 128;
|
||||
server_name_in_redirect 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
|
||||
gzip_buffers 16 8k;
|
||||
index index.html;
|
||||
~~~
|
||||
|
||||
# HTTP cache
|
||||
expires 12h;
|
||||
|
||||
# useful for multi-servers
|
||||
add_header X-Server $hostname;
|
||||
Le fichier `/etc/nginx/snippets/ipaddr_whitelist` centralise les adresses IP privilégiées, on peut ainsi utiliser `include /etc/nginx/snippets/ipaddr_whitelist;` à différents endroits dans la configuration de Nginx sans dupliquer ces adresses :
|
||||
|
||||
~~~
|
||||
allow 192.0.2.42;
|
||||
~~~
|
||||
|
||||
|
||||
### Valider la configuration
|
||||
|
||||
Avant de redémarrer le serveur, vérifier que vous n'ayez pas introduit des erreurs de syntaxes dans la configuration
|
||||
Avant de redémarrer le serveur, vérifier que vous n'ayez pas introduit des erreurs de syntaxes dans la configuration :
|
||||
|
||||
~~~
|
||||
# nginx -t -c /etc/nginx/nginx.conf
|
||||
configuration file /etc/nginx/nginx.conf test is successful
|
||||
~~~
|
||||
|
||||
|
||||
## VirtualHost
|
||||
|
||||
De façon similaire à [Apache](HowtoApache), on peut avoir plusieurs **VirtualHost** (sites sur un même serveur HTTP).
|
||||
|
||||
Voici un exemple de VirtualHost via `/etc/nginx/sites-available/example` :
|
||||
|
||||
~~~
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
ssl_certificate /etc/ssl/certs/www.example.com.chain.pem;
|
||||
ssl_certificate_key /etc/ssl/private/www.example.com.key;
|
||||
|
||||
server_name www.example.com example.com;
|
||||
|
||||
root /home/example/www;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /images/ {
|
||||
root /home/example/images;
|
||||
}
|
||||
|
||||
location ~ \.css$ {
|
||||
root /home/example/css;
|
||||
}
|
||||
|
||||
access_log /home/example/log/access.log;
|
||||
error_log /home/example/log/error.log;
|
||||
}
|
||||
~~~
|
||||
|
||||
Pour les directives _location_, Nginx va d'abord examiner celles avec des expressions régulières, puis les plus longues
|
||||
qui seront choisies avant les plus courtes. Dans l'exemple ci-dessous, Nginx vérifiera d'abord si la ressource demandée
|
||||
se termine par .css puis si elle commence par /images/ puis au final la directive _location/_.
|
||||
|
||||
|
||||
## Monitoring
|
||||
|
||||
### Munin
|
||||
|
||||
Ajouter dans la configuration Nginx :
|
||||
|
@ -150,7 +186,6 @@ Ajouter dans la configuration Nginx :
|
|||
~~~
|
||||
location /nginx_status_NNNN {
|
||||
stub_status on;
|
||||
access_log off;
|
||||
allow 127.0.0.1;
|
||||
allow <IP>;
|
||||
deny all;
|
||||
|
@ -172,7 +207,8 @@ On peut ainsi activer les plugins _nginx_request_ et _nginx_status_ :
|
|||
# ln -s /usr/share/munin/plugins/nginx_status nginx_status
|
||||
~~~
|
||||
|
||||
### Rewrite Rule
|
||||
œ
|
||||
## Rewrite Rule
|
||||
|
||||
<http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite>
|
||||
|
||||
|
@ -457,4 +493,5 @@ more_set_headers 'Server: My Server v42'
|
|||
|
||||
### Comment prononcer Nginx ?
|
||||
|
||||
<https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/>
|
||||
|
||||
|
|
Loading…
Reference in New Issue