2

I want to setup ssl for Nginx, my project is a Django and I also use gunicorn as wsgi Http server.

I add following lines in my settings.py code :

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

I don't know if it's necessary to do this, then I configure my Nginx in the following form:

server {
    listen 80;
    server_name <name>;
    return 301 https://$host$request_uri;
}

server {
    #listen 80;
    listen 443 default ssl;
    client_max_body_size 4G;

    server_name <name>;

    #ssl                  on;
    ssl_certificate      /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key  /etc/nginx/ssl/ssl.key;

    ssl_session_timeout  5m;

    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    keepalive_timeout 5;

# path for static files
    root /home/deploy/;

    location /static/ {
    }
    location /media/ {
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_pass http://app_server;
    }

    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /home/deploy/static;
    }
}

Nginx configure is correct I think because its redirect 80 to 443,but nothing happens, 80 request sent, then Nginx redirect it to 443, but nothing happen, it can't connect to gunicorn or project.

Should I do something with gunicorn? my certificate is self-signed, or what should I do?

regards :)

Rot-man
  • 327
  • 2
  • 9
Mairon
  • 159
  • 3
  • 12
  • Hi! Did you manage to make it work? I have the same problem :/ – BringBackCommodore64 Nov 07 '16 at 20:29
  • @BringBackCommodore64 hi, yes, actually the problem was with my certificates, can you send your configuration? – Mairon Nov 09 '16 at 10:17
  • Sorry for the late reply. I somehow solved my problem a while ago trying plenty of configuration variants until I hit the jackpot. I don't recall all changes but one thing I remember is that by changing `proxy_set_header Host $host` to `proxy_set_header Host $http_host` saved my day. – BringBackCommodore64 Dec 09 '16 at 17:53

1 Answers1

0

You need to add this section to your nginx configuration. upstream is used for proxying requests to your app referenced by proxy_pass:

    upstream app_server {
        server 127.0.0.1:6000; // your gunicorn server
    }
molivier
  • 136
  • 3
  • no that is not the problem. it is in my configuration. and it's a socket. but i don't know why it doesn't work – Mairon Nov 24 '15 at 04:21