Nginx basics

Sample config

1
2
sudo vim /etc/nginx/sites-available/foobar.com.conf
sudo ln -s /etc/nginx/sites-available/foobar.com /etc/nginx/sites-enabled/
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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

1
2
3
4
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx