Suite relecture
This commit is contained in:
parent
932a9cc1ab
commit
8fc5a0868a
|
@ -95,7 +95,7 @@ Fichiers de configuration :
|
||||||
└── X.conf -> ../sites-available/X.conf
|
└── 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 :
|
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
|
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
|
## VirtualHost
|
||||||
|
|
||||||
Le terme **VirtualHost** correspond à la séparation de plusieurs sites sur un même serveur HTTP.
|
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
|
# apt install nginx-full
|
||||||
|
|
||||||
$ /usr/sbin/nginx -v
|
$ /usr/sbin/nginx -V
|
||||||
nginx version: nginx/1.10.3
|
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
|
systemctl status nginx
|
||||||
● nginx.service - A high performance web server and a reverse proxy server
|
● nginx.service - A high performance web server and a reverse proxy server
|
||||||
|
@ -71,34 +74,15 @@ Fichiers de configuration :
|
||||||
│ └── snakeoil.conf
|
│ └── snakeoil.conf
|
||||||
├── uwsgi_params
|
├── uwsgi_params
|
||||||
└── win-utf
|
└── 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;
|
user www-data;
|
||||||
worker_processes auto;
|
worker_processes auto;
|
||||||
pid /var/run/nginx.pid;
|
pid /run/nginx.pid;
|
||||||
|
include /etc/nginx/modules-enabled/*.conf;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
use epoll;
|
use epoll;
|
||||||
|
@ -106,43 +90,95 @@ events {
|
||||||
}
|
}
|
||||||
|
|
||||||
http {
|
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 ».
|
Le fichier `/etc/nginx/conf.d/z-evolinux-defaults.conf` contient nos optimisations basiques :
|
||||||
|
|
||||||
Enfin, on peut déléguer un certain nombre d'options générales dans des fichiers /etc/nginx/conf.d/*.conf
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# cat /etc/nginx/conf.d/evolix.conf
|
|
||||||
|
|
||||||
# disable Nginx version
|
|
||||||
server_tokens off;
|
server_tokens off;
|
||||||
|
server_names_hash_max_size 512;
|
||||||
|
server_names_hash_bucket_size 128;
|
||||||
|
server_name_in_redirect off;
|
||||||
|
|
||||||
# GZIP
|
index index.html;
|
||||||
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;
|
|
||||||
|
|
||||||
# HTTP cache
|
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 :
|
||||||
expires 12h;
|
|
||||||
|
|
||||||
# useful for multi-servers
|
|
||||||
add_header X-Server $hostname;
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
allow 192.0.2.42;
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
### Valider la configuration
|
### 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
|
# nginx -t -c /etc/nginx/nginx.conf
|
||||||
configuration file /etc/nginx/nginx.conf test is successful
|
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
|
### Munin
|
||||||
|
|
||||||
Ajouter dans la configuration Nginx :
|
Ajouter dans la configuration Nginx :
|
||||||
|
@ -150,7 +186,6 @@ Ajouter dans la configuration Nginx :
|
||||||
~~~
|
~~~
|
||||||
location /nginx_status_NNNN {
|
location /nginx_status_NNNN {
|
||||||
stub_status on;
|
stub_status on;
|
||||||
access_log off;
|
|
||||||
allow 127.0.0.1;
|
allow 127.0.0.1;
|
||||||
allow <IP>;
|
allow <IP>;
|
||||||
deny all;
|
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
|
# 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>
|
<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 ?
|
### Comment prononcer Nginx ?
|
||||||
|
|
||||||
|
<https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue