Unix 套接字文件拒绝连接

Unix 套接字文件拒绝连接

在连接 Django + uWSGI + NGINX 时遇到了一些问题

如果我运行 Django 开发服务器,该页面就可以完美运行。

如果我运行:uwsgi --http 0.0.0.0:8134 --wsgi-file /test/test_project/wsgi.py 并从 localhost:8134 访问它,则该网站可以正常工作,只是图像未加载。

但是如果我访问 localhost:80 上的站点(大概是用于 nginx 处理),我会在 nginx error.log 中收到一个错误(以下是针对一个页面请求,所以不确定为什么它看起来像两个):

2018/07/15 11:55:34 [error] 20986#20986: *1 connect() to unix:/test
/test_project/test.sock failed (111: Connection refused) while 
connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, 
request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/test/test_project
/test.sock:", host: "localhost"
2018/07/15 11:55:34 [error] 20986#20986: *1 connect() to unix:/test
/test_project/test.sock failed (111: Connection refused) while 
connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, 
request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:
/test/test_project/test.sock:", host: "localhost", referrer: 
"http://localhost/"

我已确保运行“sudo service nginx reload”和“sudo service nginx restart”。

主要问题:
1. 为什么我无法通过 localhost:80 访问网站。我猜这与套接字文件拒绝连接有关;套接字文件是空的,并且是使用“uwsgi --ini test_uwsgi.ini”创建的。我需要检查 inetd/xinetd 是否有问题?

次要问题(可能需要单独发帖):
1. 不确定配置是否有问题,或者我是否从一开始就正确运行了它。我是否必须运行“sudo service nginx start”并运行“uwsgi --http 0.0.0.0:8134 --wsgi-file /test/test_project/wsgi.py”?我猜现在需要,除非我以某种方式通过 nginx 自动执行 uwsgi 命令。2
. 每个脚本、图像和配置文件是否都应归 www-data 所有?
3. 我的静态图像文件夹是否可由 uwsgi 和 nginx 访问(基于以下配置)?如何确定?
4. 我遇到了无法传递 cookie 的问题,因此如果配置存在问题阻止了这种情况,请告诉我。

设置如下:

/test/test_project/test.sock 权限:

srwxrwxrwx 1 www-data www-data 0 Jul 14 22:51 test.sock
*Obviously I'll want to tighten this up, but for troubleshooting   purposes permissions are open wide.

/测试/测试项目/test_uwsgi.ini:

[uwsgi]

chdir = /test/test_project
module = test.wsgi

pythonpath = /usr/bin/python2
# process-related settings
master = true
processes = 8
socket = /test/test_project/test.sock
chmod-socket = 666
max-requests = 50000

/测试/测试项目/uwsgi.py:

def application_backup(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])

返回视图.索引(环境,start_response)

自定义nginx.conf:

upstream django {
 server unix:/test/test_project/test.sock;
 # Also tried unix:///test/test_project/test.sock;
}

server {
 listen 80;
 server_name 127.0.0.1;
 charset utf-8;

client_max_body_size 1024M;

location /static {
 alias /test/test_project/static;
 }

location /media {
 alias /test/test_project/media;
 }

location / {
 uwsgi_pass django;
 include uwsgi_params;
 }

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

相关内容