Nginx 看不到 unix 套接字

Aja*_*mac 6 linux ubuntu nginx uwsgi flask

更新:我看到了与 /tmp 目录相关的问题,还有一条评论提到将套接字移出 /home 以及。它没有解决问题。

(帖子底部的其他更新)

我在 azure 上有一个ubuntu 16.04 vm我正在使用uwsgi作为服务器和nginx作为反向代理来托管烧瓶应用程序,遵循本指南...

https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04

问题是当我尝试使用端口 80 上的 Web 浏览器连接到服务器的 ip 时,我收到了502 Bad Gateway。当我检查日志时,它说 nginx 找不到我在配置文件中指定的 unix 套接字.

错误是...

2016/08/29 23:23:20 [crit] 2792#2792: *120 connect() to unix:///home/me/appname/appname/appname.sock failed (2: No such file or directory) while connecting to upstream, client: ip.goes.in.here, server: here.goes.the.ip, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///home/me/appname/appname/appname.sock:", host: "the.ip.goes.here", referrer: "http://all.of.teh.ips/"
Run Code Online (Sandbox Code Playgroud)

我的服务器块看起来像这样......

server {
  listen 80;
  server_name ip.address.goes.here;

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/etc/appname.sock;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的app.ini文件看起来像这样...

[uwsgi]

module:wsgi:app

master = true
processes = 5

socket = /etc/appname.sock
chmod-socket = 660
vacuum = true

die-on-term = true
Run Code Online (Sandbox Code Playgroud)

我的.service文件看起来像这样......

[Unit]

Description=UWSGI instance to serve app
After=network.target


[Service]

User=me
Group=www-data
WorkingDirectory=/home/me/appname
ExecStart=/home/me/appnam/uwsgi --ini appname.ini


[Install]

WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

我还有一个执行以下操作的设置脚本(可能会导致重复日志出现问题?)

sudo ufw allow 'Nginx Full'

export FLASK_APP=appname.py
export APPNAME_SETTINGS=app_settings.cfg

sudo cp service/appname.service /etc/systemd/system/appname.service

sudo cp nginxServerBlock/appname /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/appname /etc/nginx/sites-enabled
sudo nginx -t #this tests for syntax errors

sudo systemctl start appname
sudo systemctl enable appname
Run Code Online (Sandbox Code Playgroud)

我在 unix 之后和 home 之前更改了斜杠的 #(现在等,目录已更改),以及我在各种指南中看到的其他一些不同的东西。

我试图通过更改 .ini 文件和服务器块中指定的位置来移动套接字,但错误完全没有改变,所以 nginx 似乎在同一目录中寻找套接字。

nginx 正在搜索以查找套接字的目录不在我的任何配置中。

[更新]我发现有重复的日志在var /日志/ nginx的目录,access.log的8份error.log中的8份。我一直在每次更改后运行安装脚本(在使用 git 拉取更改后将文件移动到适当的位置)并根据运行后出现在终端中的说明使用守护进程重新加载(我不记得确切的名称)安装脚本......我的脚本中的某些东西会导致重复吗?有没有可能我偶然对不同的服务进行了一些奇怪的重复设置,每个服务都使用不同的日志文件对?