Configuration NGINX

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 :

    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;
    }
  • proxy_pass dans le cas d’applications Python, Node.js, Go et Java :

    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;
    }

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 :

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 :

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 :

rm -f /etc/nginx/conf.d/$domain.d/$app.conf
sudo service nginx reload

Vous avez découvert des erreurs ? Vous pensez pouvoir améliorer cette documentation ? Cliquez sur Éditer en haut de la page, puis sur l'icone crayon sur Github pour proposer vos changements.