【问题标题】:(nginx + uwsgi + django). nginx server is not allowing the request to hit the uwsgi server(nginx + uwsgi + django)。 nginx 服务器不允许请求访问 uwsgi 服务器
【发布时间】:2016-05-23 14:54:03
【问题描述】:

我没有收到来自 ngix 的任何回复

nginx 日志

2016/05/23 15:19:49 [错误] 9019#0: *3 上游超时(110:连接超时)同时从上游读取响应头,客户端:122.171.107.80,服务器:54.169.34.178 ,请求:“GET / HTTP/1.1”,上游:“uwsgi://127.0.0.1:8000”,主机:“54.169.34.178”

以前我只使用uwsgi服务器,现在想在前面添加nginx,以便它可以提供静态数据并充当api网关。

我正在尝试使用这个tutoriall。我能够单独运行 uwsgi 服务器,当我将它与 nginx 结合使用时,它不起作用。

有人可以帮我吗?

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # nginx-naxsi config
    ##
    # Uncomment it if you installed nginx-naxsi
    ##

    #include /etc/nginx/naxsi_core.rules;

    ##
    # nginx-passenger config
    ##
    # Uncomment it if you installed nginx-passenger
    ##

    #passenger_root /usr;
    #passenger_ruby /usr/bin/ruby;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

sites-enabled/*.conf

```

upstream testing {
server 127.0.0.1:8000;
}

server {
listen      80;

    server_name 54.169.34.178 
    charset     utf-8;

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


    location / {
       uwsgi_pass testing;
        include     /home/ubuntu/testDjango/testWeb/uwsgi_params; 
    } 

}

```

【问题讨论】:

  • 您在 nginx 尝试提供静态内容或代理到您的 uwsgi 服务器时收到此错误?
  • 目前我没有单独提供静态内容。我只是想获取主页,它在单个文件中包含所有必需的页面
  • 54.169.34.178:8000 对我运行 uwsgi 的我来说效果很好。我正在尝试通过54.169.34.178 打它,但它不起作用
  • 您能否介绍一下您的 uwsgi 配置,例如它绑定到的主机和端口?
  • 截至目前,我的运行方式是 uwsgi --http :8000 --module testWeb.wsgi 当你点击 ipaddress:8000 就可以了

标签: django nginx uwsgi


【解决方案1】:

根据您共享的配置和详细信息,就像您使用绑定到 0.0.0.0 的 uwsgi 服务器一样(因为您可以在此处访问它 54.169.34.178:8000),而在您的 nginx 配置中,您将上游设置为 127.0 .0.1。这就是为什么 nginx 无法访问您的应用程序的原因。

我建议您使用以下命令在 127.0.0.1 运行您的应用程序 uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi

现在尝试从您的浏览器访问http://54.169.34.178/

【讨论】:

  • 我遇到了同样的错误,现在我什至无法指向 uwsgi。当我尝试 Ipadderess:8000/- 它不起作用。和 Nginx 抛出同样的错误。
  • 你试过uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi。这里 ipaddress 不是任何 ipaddress 而是你的 localhost 即 127.0.0.1 ?
  • 是的,我做到了(uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi)。我在 ec2 中运行,所以只是想点击 54.169.34.178:8000/-,我在这里做错了吗?
  • 您应该尝试54.169.34.178:80 或只是54.169.34.178,因为您的 nginx 正在侦听端口 80。现在,当 nginx 将收到一个 http 请求时,它会将其转发到上游,在您的情况下为 @987654327 @.
  • 为了进一步调试,我建议您使用 ssh 进入您的 ec-instance 并使用 curl 进行测试。 curl http://127.0.0.1:8000 如果 curl 工作,则意味着您的服务运行正常。现在继续使用上面的 nginx 配置使您的服务可以从外部网络访问。如果 curl 不起作用,则意味着您的后端服务存在问题,您应该先对其进行调试。
【解决方案2】:

uwsgi_pass 不是 http 协议,而是 uwsgi 协议,它接受不是 http 的套接字

当您进行 uwsgi_pass 测试时,它需要套接字,因此您需要在套接字模式下运行您的 uwsgi 并验证其权限(nginx 应该能够对该文件进行读写)

如果你想把它保存在端口和 http 你必须将 uwsgi_pass 更改为 proxy_pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 2019-03-15
    • 2014-02-05
    • 2013-06-18
    • 2017-01-02
    • 2014-01-04
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多