Does anyone have a working configuration for these four?
- Django
- uWSGI
- Nginx
- SSL
The main question is how to correctly set up SSL
for this? I've googled a lot, and still can't get it to work. I have a working set up for http
with unix sockets
, but that's as far as I could get.
There are some other answers posted, but they are mostly code snippets, and not a whole configuration.
uWSGI is a fast, self-healing and developer/sysadmin-friendly application container server coded in pure C. See also. The uWSGI docs offer a tutorial covering Django, nginx, and uWSGI (one possible deployment setup of many). The docs below are focused on how to integrate Django with uWSGI.
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen 443 ssl;
server_name example.com;
access_log /var/log/nginx/example.com_access.log combined;
error_log /var/log/nginx/example.com_error.log error;
ssl_certificate /etc/nginx/ssl/example-unified.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
location /static/ {
alias /webapps/example/static/;
}
location /media/ {
alias /webapps/example/media/;
}
location / {
proxy_pass http://localhost:8000/;
proxy_redirect off;
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;
}
}
This is basic nginx configuration that will work with SSL and will forward requests to uwsgi running on port 8000 (you can change this to socket if you want).
For advanced SSL settings check THIS.
I am new to nginx,uwsgi and ssl. Here shares my testing nginx and uwsgi config.
Basically, there are four steps to deploy Django only support SSL/HTTPS.
openssl req -new -x509 -nodes -out server.crt -keyout server.key
sudo ln -s /path/to/django/example_nginx.conf /etc/nginx/sites-enabled/
Config settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
Restart nginx and uwsgi
sudo /etc/init.d/nginx restart
uwsgi --ini /path/to/django/example_uwsgi.ini
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With