Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
fr:nginx [2020/03/28 18:16] – création Deedfr:nginx [2021/12/03 19:19] – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Nginx ====== ====== Nginx ======
  
-Pour Debian:\\ +===== Installation =====
-Installer les paquets de base.+
  
 +Pour Debian, installez les paquets de base :
   sudo apt install nginx-full   sudo apt install nginx-full
  
  
-Pour PHP+Pour PHP :
   sudo apt install php php-gd php-imagick php-curl php-intl php-fpm   sudo apt install php php-gd php-imagick php-curl php-intl php-fpm
  
Ligne 18: Ligne 18:
  
  
-===== Nginx =====+===== Aperçu de Nginx ===== 
 +La configuration de Nginx et des sites se trouve dans ''/etc/nginx''
  
-===== Exemple de conf ===== + 
-====notre proxy=====+<code>nginx 
 +├── conf.d 
 +├── custom 
 +│   ├── acme_http-01.conf 
 +│   ├── apache_compat.conf 
 +│   ├── headers.conf 
 +│   ├── headers_nocsp.conf 
 +│   └── tls.conf 
 +├── fastcgi.conf 
 +├── fastcgi_params 
 +├── koi-utf 
 +├── koi-win 
 +├── mime.types 
 +├── modules-available 
 +├── modules-enabled 
 +│   ├── 50-mod-http-auth-pam.conf -> /usr/share/nginx/modules-available/mod-http-auth-pam.conf 
 +│   ├── 50-mod-http-dav-ext.conf -> /usr/share/nginx/modules-available/mod-http-dav-ext.conf 
 +│   ├── 50-mod-http-echo.conf -> /usr/share/nginx/modules-available/mod-http-echo.conf 
 +│   ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf 
 +│   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf 
 +│   ├── 50-mod-http-subs-filter.conf -> /usr/share/nginx/modules-available/mod-http-subs-filter.conf 
 +│   ├── 50-mod-http-upstream-fair.conf -> /usr/share/nginx/modules-available/mod-http-upstream-fair.conf 
 +│   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf 
 +│   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf 
 +│   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf 
 +├── nginx.conf 
 +├── proxy_params 
 +├── scgi_params 
 +├── sites-available 
 +│   ├── default 
 +│   └── test.conf 
 +├── sites-enabled 
 +│   └── test.conf -> ../sites-available/test.conf 
 +├── snippets 
 +│   ├── fastcgi-php.conf 
 +│   └── snakeoil.conf 
 +├── uwsgi_params 
 +└── win-utf</code> 
 + 
 +Le fichier principal de configuration est ''nginx.conf'', il fixe les paramètres globaux et il y a donc assez peu de raisons de le modifier. Tout comme pour [[fr:lamp|Apache]], le dossier ''sites-enabled'' contient les liens symboliques vers les fichiers de configuration des différents sites situés dans ''sites-available''. Ces autres fichiers de configuration sont inclus depuis le fichier de configuration principal nginx.conf grâce à la directive ''include''
 + 
 + 
 +La spécificité de Khaganat est la création du dossier ''custom'' qui contient des fichiers de configuration destinés à être inclus au cas par cas dans la configuration de chaque site. Les fichiers de ''custom'' sont les suivants : 
 + 
 +  * ''acme_http-01.conf'' : Configuration nécessaire pour la résolution du challenge HTTP-01 lors d'un renouvellement de certificat initié par [[fr:acmed|ACMEd]]. 
 +  * ''apache_compat.conf'' : Interdit l'accès aux fichiers dont le nom commence par ''.ht'' (notamment ''.htaccess'' et ''.htpasswd'') afin de ne pas faire fuiter les éventuels résidus de fichiers de configuration spécifiques à Apache. 
 +  * ''headers.conf'' : Ajoute tous les headers HTTP classiques dont un site a normalement besoin. :!: Attention, ceci inclut des CSP très sévères. 
 +  * ''headers_nocsp.conf'' : Identique à ''headers.conf'' mais n'inclut aucune CSP afin de laisser la libre configuration de ces dernières. 
 +  * ''tls.conf'' : Configuration TLS. 
 + 
 +===== Ajouter un domaine ou sous-domaine ===== 
 +Créez un fichier de configuration pour votre nom de domaine dans ''/etc/nginx/sites-available/monsite.conf''
 + 
 +Un exemple de fichier est disponible dans ''/etc/nginx/sites-available/default''. Copiez-le, adaptez-le, puis enregistrez-le avec un nom compréhensible.  
 + 
 +Vous pouvez vérifier que vous n'avez pas fait d'erreur de syntaxe avec la commande suivante : 
 + 
 +  nginx -t 
 + 
 +Ou vous pouvez voir la configuration lue par nginx (en plus de la tester) avec cette commande : 
 + 
 +  nginx -T | less 
 + 
 +Activez ensuite le site en créant un lien symbolique dans ''/etc/nginx/sites-enabled/''
 +  cd /etc/nginx/sites-enabled/ 
 +  sudo ln -s ../sites-available/monsite.conf 
 + 
 +Puis dites à nginx de prendre en compte la nouvelle configuration en le redémarrant : 
 +  sudo service nginx restart 
 + 
 + 
 +===== Exemple de configuration ===== 
 +==== Notre proxy =====
 Exemple simple: Exemple simple:
 <code bash> <code bash>
Ligne 34: Ligne 107:
  
 } }
- 
 </code> </code>
  
-Création d'une conf commune:+Création d'une conf commune :
   nano /etc/nginx/proxy.conf   nano /etc/nginx/proxy.conf
 <code bash> <code bash>
Ligne 50: Ligne 122:
 proxy_read_timeout      90; proxy_read_timeout      90;
 proxy_buffers           32 4k; proxy_buffers           32 4k;
- 
 </code> </code>
 +
 Exemple plus complet: Exemple plus complet:
 <code bash> <code bash>
Ligne 77: Ligne 149:
     }     }
 } }
- 
 </code> </code>
  
-D'autre exemple (lien vers les autres tuto) +D'autres exemples (ajouter des liens vers les autres tuto) :\\ 
-{{tag>brouillon}}+  *[[fr:kloud#nginx|Nextcloud]] 
 +  *[[fr:dokuwiki_farm#nginx|Dokuwiki]] 
 +===== Sources et liens ===== 
 +  * [[https://doc.ubuntu-fr.org/nginx|Documentation Ubuntu sur Nginx]] 
 + 
 +En cas de besoin, la documentation d'nginx est très complète. La lecture des articles suivants est recommandée : 
 + 
 +  * [[https://www.nginx.com/resources/wiki/start/|Getting Started]] 
 +  * [[https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/|Pitfalls and Common Mistakes]] 
 +  * [[https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/|NGINX Reverse Proxy]] 
 +  * [[https://nginx.org/en/docs/http/server_names.html|Server names]] 
 +  * [[https://nginx.org/en/docs/http/ngx_http_core_module.html|Module ngx_http_core_module]] 
 +  * [[https://nginx.org/en/docs/http/ngx_http_proxy_module.html|Module ngx_http_proxy_module]] 
 + 
 +{{tag>brouillon sysadmin web}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/nginx.txt · Dernière modification : 2021/12/30 15:05 de zatalyz

Licences Mentions légales Accueil du site Contact