Django + Nginx + Uwsgi see Nginx default page then run on 80 port

Posted February 2, 2021 1.1k views

I have Django app that runs on VPS using Nginx + Uwsgi.

The Symlink nginx config

# the upstream component nginx needs to connect to
    upstream django {
        server unix:///root/ubergf/client/uwsgi_nginx.sock; # for a file socket
        # server; # for a web port socket (we'll use this first)

    # configuration of the server
    server {
        # the port your site will be served on
        listen      80;
        # the domain name it will serve for
        server_name; # substitute your machine's IP address or FQDN
        charset     utf-8;

        # max upload size
        client_max_body_size 75M;   # adjust to taste

        # Django media
        location /media  {
        alias /root/ubergf/client/media;  # your Django project's media files - amend as required

        location /static {
        alias /root/ubergf/client/staticfiles; # your Django project's static files - amend as required

        # Finally, send all non-media requests to the Django server.
        location / {
        uwsgi_pass  django;
        include     /root/ubergf/client/deployment/uwsgi_params; # the uwsgi_params file you installed


uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;



chdir           = /root/ubergf/client
module          = ubergfapi.wsgi
master          = true
processes       = 10
socket          = /root/ubergf/client/uwsgi_nginx.sock
chmod-socket    = 666
vacuum          = true
env             = DEBUG_MODE=False

When I run everything on port 8000 (change in Symlink nginx config) everything works fine ( : 8000), but when I change it back to 80 - returns me Nginx default page.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hi @abuseofinnocent,

You’ll need to make your Nginx work as a reverse proxy. At the moment as far as I can see it’s not. Here is an example configuration file which uses connections to port 80 and uses a proxy to forward them to port 8000:

server {
    listen 80;

    location / {
        proxy_pass http://your_server_ip:8000;
        proxy_set_header Host $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;

You can add this in your configuration of the server block in your config.

Don’t forget to change with your actual domain and proxypass http://yourserver_ip:8000; with your IP Address.