Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Nginx和uWSGI:连接被拒绝,502网关错误_Python_Nginx_Uwsgi - Fatal编程技术网

Python Nginx和uWSGI:连接被拒绝,502网关错误

Python Nginx和uWSGI:连接被拒绝,502网关错误,python,nginx,uwsgi,Python,Nginx,Uwsgi,正在尝试在Ubuntu 13.10上设置Nginx和uWSGI 当我尝试访问该网站时,我得到的只是“502坏网关” 运行apt获取安装nginx-uwsgi-uwsgi-plugin-python3以安装nginx/uwsgi /etc/nginx/sites enabled/webpage.com: server { listen 80; server_name webpage.com; access_log /var/

正在尝试在Ubuntu 13.10上设置Nginx和uWSGI

当我尝试访问该网站时,我得到的只是“502坏网关”

运行
apt获取安装nginx-uwsgi-uwsgi-plugin-python3
以安装nginx/uwsgi

/etc/nginx/sites enabled/webpage.com:

server {
        listen          80;
        server_name     webpage.com;
        access_log /var/log/nginx/webpage.com_access.log;
        error_log /var/log/nginx/webpage.com_error.log;


        location / {
            uwsgi_pass      /var/run/webpage.com.uwsgi.socket;
            include         uwsgi_params;
            uwsgi_param     Host $host;
            uwsgi_param     X-Real-IP $remote_addr;
            uwsgi_param     UWSGI_SCHEME $scheme;
            uwsgi_param     SERVER_SOFTWARE nginx/$nginx_version;     
        }
}
/etc/uwsgi/apps enabled/webpage.com

[uwsgi]
vhost = true
plugin = python3
socket = /tmp/webpage.com.sock
master = true
enable-threads = true
processes = 2
home = /var/www/webpage.com/env
wsgi-file = /var/www/webpage.com/env/hello.py
virtualenv = /var/www/webpage.com/env
chdir = /var/www/webpage.com/env
touch-reload = /var/www/webpage.com/reload
/var/log/nginx/webpage.com\u error.log

2014/01/17 16:28:58 [error] 25073#0: *13 connect() to unix:///var/run/webpage.com.uwsgi.socket failed (111: Connection refused) while connecting to upstream, client: 83.109.132.224, server: webpage.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///var/run/webpage.com.uwsgi.socket:", host: "webpage.com"
hello.py
只是一个简单的hello world应用程序


已经为此挣扎了几个小时。。。现在我需要帮助:)

查看此处发布的配置文件,您将nginx中的套接字引用为:

uwsgi_pass      /var/run/webpage.com.uwsgi.socket;
在uwsgi作为

socket = /tmp/webpage.com.sock

这并没有回答OP最初的问题,但我在nginx中遇到了相同的错误,
connect()tounix:///tmp/uwsgi_dev.sock 连接到上游时失败(13:权限被拒绝),我可以通过完全重新启动uwsgi进程来修复它。这是一个生产服务器,所以我对硬重启犹豫不决,但仅仅重新加载uwsgi进程并没有奏效。希望这能帮助别人

我意识到这与OP的问题没有任何关系,但由于这是Google中最热门的错误消息,我想指出是什么解决了我的问题

我正在遵循一个建议将
uwsgi_通过127.0.0.1:9090的教程uwsgi
配置中使用
httpsocket=:9090设置的Python脚本的
nginx
配置中进行编码。错误日志
/var/log/nginx/error.log
显示了问题:
2015/08/13 02:16:04[error]12566#12566:*2上游在从上游读取响应头时过早关闭了连接,客户端::1,服务器:~^(www\.)?(.+)$,请求:“GET/hello/HTTP/1.1”,上游:uwsgi://127.0.0.1:9090,主机:“kybyz”
浏览器,同时,他给了我502坏网关错误


有两种方法(至少)可以解决这个问题。第一个是将
uwsgi
配置中的
httpsocket
更改为简单的
socket
(事实证明,这是推荐的;我只是没有仔细阅读)。但是,这将不再允许我通过将浏览器指向
http://127.0.0.1:9090/
,因为脚本现在讲的是
uwsgi
协议,而不是
http
。因此,我改回了
httpsocket
,并在
nginx
配置中将
uwsgi\u-pass
行更改为
proxy\u-passhttp://127.0.0.1:9090;

通常这是一个文件权限问题,即nginx进程无法读取uwsgi套接字文件。检查套接字文件的权限及其父文件夹和祖父母文件夹等。只需一个命令即可完成此操作(假设您的nginx进程由用户运行
nginx
):


对于我在AWS上的Python Django应用程序,它只是超载了

首先,我添加了更多的服务器,并注意到C实例(compute)比通用实例(M)要好,因为M实例在耗尽CPU点数后,有66%的CPU负载作为steal运行(由一些其他客户使用)


但在运行应用程序一段时间后(在短时间内,传入请求的数量增加了5倍),我还检查了数据库性能(RDS),它以100%的速度运行。我还将数据库实例大小从4个CPU增加到8个CPU,现在它可以正常工作。

很可能您的uWSGI实例没有运行,请使用“ps aux”检查它并检查uWSGI日志,将/etc/uWSGI/apps enabled/webpage.com中的socket从
/tmp/webpage.com.sock
更改为
/var/run/webpage.com.uWSGI.socket
,但仍然得到502错误网关错误…套接字文件的文件权限为:
-rw-r--1 www-data www-data www-data 0 Jan 17 14:32/var/run/webpage.com.uwsgi.socket
日志记录在我的第一篇文章中。@thomas你确定uwsgi正在运行吗?包括
ps-ewwf | grep uwsgi
@Thomas so uwsgi未运行:)检查
/var/log/uwsgi/…
中的uwsgi错误日志我在自己的教程中错过了该部分。。。但你们的回答帮助我找到了问题所在。谢谢
su nginx -c "[[ -r sockfile ]] && echo ok"