diff --git a/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md b/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md index 14dc2e5f..e6514ac3 100644 --- a/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md +++ b/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.fr.md @@ -10,57 +10,71 @@ routes: Ce tutoriel a pour but d’aider à la mise en place d’une configuration NGINX pour le packaging d’application. #### Configuration NGINX -La configuration doit être mise dans `conf/nginx.conf`. Il s’agira d’utiliser **FastCGI** ou un **proxy_pass** suivant l’application : -* **FastCGI** est utilisé dans les applications PHP : -```nginx -location YNH_EXAMPLE_PATH { - alias YNH_WWW_PATH ; - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } - index index.php; - try_files $uri $uri/ index.php; - location ~ [^/]\.php(/|$) { - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass unix:/var/run/php5-fpm.sock; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param REMOTE_USER $remote_user; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param SCRIPT_FILENAME $request_filename; - } - # Include SSOWAT user panel. - include conf.d/yunohost_panel.conf.inc; +La configuration doit être mise dans `conf/nginx.conf`. Il s’agira d’utiliser **FastCGI** ou un **proxy_pass** suivant l’application : +* **FastCGI** est utilisé dans les applications PHP : + +```nginx +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + + proxy_pass http://127.0.0.1:__PORT__/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; } ``` * **`proxy_pass`** dans le cas d’applications Python, Node.js, Go et Java : + ```nginx -location YNH_EXAMPLE_PATH/ { - rewrite ^YNH_EXAMPLE_PATH$ YNH_EXAMPLE_PATH/ permanent; - proxy_pass http://YNH_EXEMPLE_DOMAIN:YNH_EXAMPLE_PORT/; - proxy_set_header Host $host; - proxy_buffering off; +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + + proxy_pass http://127.0.0.1:__PORT__/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; } ``` #### Script d’installation + Il s’agit de modifier le fichier `conf/nginx.conf` avec les paramètres de l’application. Pour cela, on utilise des termes génériques `YNH_EXAMPLE_PATH` que l’on modifie par des valeurs souhaitées avec la commande `sed` : + ```bash sed -i "s@YNH_EXAMPLE_PATH@$path@g" ../conf/nginx.conf sed -i "s@YNH_EXAMPLE_PORT@$port@g" ../conf/nginx.conf sed -i "s@YNH_EXEMPLE_DOMAIN@$domain@g" ../conf/nginx.conf ``` -Il faut ensuite déplacer ce fichier de configuration dans la configuration de NGINX, puis recharger la configuration de NGINX : + +Il faut ensuite déplacer ce fichier de configuration dans la configuration de NGINX, puis recharger la configuration de NGINX : + ```bash cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf sudo service nginx reload ``` + Si NGINX ne redémarre pas, il se peut que le fichier de configuration ne soit pas correct. #### Script de suppression -Il s’agit de supprimer la configuration NGINX pour cette application, puis de recharger la configuration de NGINX : + +Il s’agit de supprimer la configuration NGINX pour cette application, puis de recharger la configuration de NGINX : + ```bash rm -f /etc/nginx/conf.d/$domain.d/$app.conf sudo service nginx reload diff --git a/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.md b/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.md index f6999fb6..0986dd9d 100644 --- a/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.md +++ b/pages/06.contribute/10.packaging_apps/09.nginx/packaging_apps_nginx_conf.md @@ -10,23 +10,28 @@ routes: This tutorial aim to help setup NGINX configuration for application packaging. #### NGINX configuration + Configuration must be in `conf/nginx.conf`. We must use **FastCGI** or a **proxy_pass** following the application: * **FastCGI** is used with PHP applications: + ```nginx -location YNH_EXAMPLE_PATH { - alias YNH_WWW_PATH ; - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + + # Path to source + alias __FINALPATH__/; + index index.php; + try_files $uri $uri/ index.php; location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; + fastcgi_index index.php; include fastcgi_params; - fastcgi_param REMOTE_USER $remote_user; - fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $request_filename; } @@ -36,31 +41,47 @@ location YNH_EXAMPLE_PATH { ``` * **`proxy_pass`** in Python, Node.js, Go and Java applications: + ```nginx -location YNH_EXAMPLE_PATH/ { - rewrite ^YNH_EXAMPLE_PATH$ YNH_EXAMPLE_PATH/ permanent; - proxy_pass http://YNH_EXEMPLE_DOMAIN:YNH_EXAMPLE_PORT/; - proxy_set_header Host $host; - proxy_buffering off; +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + + proxy_pass http://127.0.0.1:__PORT__/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; } ``` #### Install script + We must modify `conf/nginx.conf` file with application arguments. For this, we use generic terms `YNH_EXAMPLE_PATH` that we modify by desired values with `sed` command: + ```bash sed -i "s@YNH_EXAMPLE_PATH@$path@g" ../conf/nginx.conf sed -i "s@YNH_EXAMPLE_PORT@$port@g" ../conf/nginx.conf sed -i "s@YNH_EXEMPLE_DOMAIN@$domain@g" ../conf/nginx.conf ``` We must move that configuration file in NGINX configuration, then reload NGINX configuration: + ```bash cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf sudo service nginx reload ``` + If NGINX won't restart, it's possible that this configuration file isn't right. #### Remove script + We must remove NGINX configuration of this application, then reload NGINX configuration: + ```bash rm -f /etc/nginx/conf.d/$domain.d/$app.conf sudo service nginx reload