Nginx 默认页面显示。无法让应用程序显示

ech*_*cho 8 django nginx gunicorn ubuntu-16.04

第一次使用 Nginx。尝试将 Nginx 连接到运行 django 应用程序的 Gunicorn。该应用程序实际上尚未编写,因此一旦配置了所有内容,它只会显示一个正在构建的页面。

我似乎无法正确配置 Nginx 将请求传递给 Gunicorn,然后传递给 Django。相反,它始终显示 Nginx 默认页面。非常感谢任何帮助!

这是/etc/nginx/sites-available/mysite:

server {
    listen 80;
    #server_name <server IP>;
    server_name <mysite.com>;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/<my user acct>/<my app>/<my site>;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/<my user acct>/<my app>/<my site>/<my site>.sock;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是/etc/nginx/sites-available/default:

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        #server_name <mysite.com> <www.mysite.com>;
        #server_name localhost;
        server_name _;
        #server_name <server IP>;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}

    listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/<mysite.com>/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/<mysite.com>/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#       listen 80;
#       listen [::]:80;
#
#       server_name example.com;
#
#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}
Run Code Online (Sandbox Code Playgroud)

Pri*_*mal 9

我认为您应该删除可用站点中的默认配置,并且您的站点可用配置也应该位于启用站点的目录中。

/sites-available/
| 
|-> site.com
|-> site2.com
|-> disabled.com

/sites-enabled/  **this links to the files in /sites-available**
| 
|-> site2.com
|-> site2.com
Run Code Online (Sandbox Code Playgroud)

  • 根据此响应,我决定从启用站点的目录中删除指向默认配置的链接。这解决了这个问题。我将默认配置保留在站点可用目录中。 (3认同)