NGINX configuration

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:
#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/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 SCRIPT_FILENAME $request_filename;

    # Include SSOWAT user panel.
    include conf.d/;
  • proxy_pass in Python, Node.js, Go and Java applications:
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
location __PATH__/ {

        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:

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:

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:

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

Found errors? Think you can improve this documentation? Simply click the Edit link at the top of the page, and then the icon on Github to suggest changes.