【问题标题】:upstream timed out (110: Connection timed out) while connecting to upstream连接上游时上游超时(110:连接超时)
【发布时间】:2021-06-01 16:55:22
【问题描述】:

我想在 ubuntu 机器的 AWS ec2 实例中的端口号 8000 上部署我的 Django 网站。但是在运行 Nginx 服务器后,我在浏览器中收到以下 400/Bad request 错误,并且在 Nginx 错误日志中显示如下。

upstream timed out (110: Connection timed out) while connecting to upstream, client: 23.104.74.85, server: , request: "GET / HTTP/1.1", upstream: "http://2.12.52.96:8080/", host: "2.12.52.96"

下面是我的代码 sn-ps。

my_site.conf

# the upstream component nginx needs to connect to
upstream django {
    server unix:///home/ubuntu/my_site/my_site.sock;
}

# configuration of the server
server {
    listen      8000;
    server_name 2.12.52.96;
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;

    # Django media and static files
    location /media  {
        alias /home/ubuntu/my_site/media;
    }
    location /static {
        alias /home/ubuntu/my_site/static;
    }

    # Send all non-media requests to the Django server.
    location / {
        uwsgi_pass  2.12.52.96:8000; 
        include     /home/ubuntu/my_site/uwsgi_params;
    }
}

uwsgi_params

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;

my_site.ini

[uwsgi]

# full path to Django project's root directory
chdir            = /home/ubuntu/my_site/
# Django's wsgi file
module           = my_site.wsgi
# full path to python virtual env
home             =  /home/ubuntu/.virtualenvs/newUser

# enable uwsgi master process
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = /home/ubuntu/my_site/my_site.sock
# socket permissions
chmod-socket    = 666
# clear environment on exit
vacuum          = true
# daemonize uwsgi and write messages into given log
daemonize       = /home/ubuntu/uwsgi-emperor.log

【问题讨论】:

    标签: python-3.x django nginx deployment uwsgi


    【解决方案1】:

    最后我从一个 facebook 群组中得到了答案。谢谢哈桑·阿里·塞利姆。 由于我的 Nginx 服务器和我的 Django 网站在同一台机器上运行,server_name 应该是 localhost(Nginx 将访问同一网络内的网站)。 为了更易于理解,我将修改后的配置放在下面。 my_site.conf

    # the upstream component nginx needs to connect to
    upstream django {
        server unix:///home/ubuntu/my_site/my_site.sock;
    }
    
    # configuration of the server
    server {
        listen      8000;
        server_name localhost;
        charset     utf-8;
    
        # max upload size
        client_max_body_size 75M;
    
        # Django media and static files
        location /media  {
            alias /home/ubuntu/my_site/media;
        }
        location /static {
            alias /home/ubuntu/my_site/static;
        }
    
        # Send all non-media requests to the Django server.
        location / {
            uwsgi_pass  django; 
            include     /home/ubuntu/my_site/uwsgi_params;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-01
      • 2011-08-01
      • 2018-01-31
      • 1970-01-01
      • 2019-06-20
      • 2012-12-19
      • 2013-09-15
      • 2018-10-15
      • 2015-04-05
      相关资源
      最近更新 更多