upstream timed out (110: Connection timed out) while connect



我想在ubuntu机器的AWS ec2实例上部署我的Django网站,端口号为8000。但是在运行Nginx服务器后,我在浏览器中得到以下400/Bad请求错误,在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"

下面是我的代码片段。

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

最后我从一个facebook群里得到了答案。谢谢Hassan Aly Selim。因为,我的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;
}
}

相关内容

最新更新