Nginx basics

Sample config

sudo vim /etc/nginx/sites-available/foobar.com.conf
sudo ln -s /etc/nginx/sites-available/foobar.com /etc/nginx/sites-enabled/
server {
        listen 80;
        listen [::]:80;
        server_name foobar.com;
        return 301 https://$host$request_uri;
}

server {
        listen 443;
        server_name foobar.com;

        client_max_body_size 0;
        chunked_transfer_encoding on;

        error_log /var/log/nginx/foobar-error.log;
        access_log /var/log/nginx/foobar-access.log;

        ssl on;
        ssl_certificate /data/certs/registry/registry.crt;
        ssl_certificate_key /data/certs/registry/registry.pem;

        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;

        location / {
                proxy_pass http://127.0.0.1:5000;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_read_timeout 900;
        }
}

Service management

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx