web-dev-qa-db-ja.com

NginxはUNIXソケットを認識できません

更新:/tmpディレクトリに関連する質問がありました。また、コメントが/ homeからソケットを移動することにも言及しています。問題は解決しませんでした。

(投稿の下部にある追加の更新)

Azureにbuntu 16.04 vmがあります。サーバーとしてwsgiを使用してflaskアプリケーションをホストするために使用しています。 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/"

私のサーバーブロックは次のようになります...

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

  location / {
    include uwsgi_params;
    uwsgi_pass unix:/etc/appname.sock;
  }
}

私のapp.iniファイルは次のようになります...

[uwsgi]

module:wsgi:app

master = true
processes = 5

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

die-on-term = true

私の.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

また、次のことを行うセットアップスクリプトもあります(重複ログで問題が発生する可能性がありますか?)

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

私はunixの後にスラッシュの数を変更しましたと家の前(今では、dirが変更されました)など、さまざまなガイドで異なっていた他のものを見ました。

私はソケットを移動しようとしました .iniファイルとサーバーブロックで指定された場所を変更することにより、しかしエラーは完全に変更されていませんなので、nginxはソケットを探しているようです同じディレクトリ内。

nginxがソケットを見つけるために検索しているディレクトリは、私の構成のどこにもありません。

[UPDATE] var/log/nginxディレクトリに重複するログがあるaccess.logの8つのコピーおよびの8つのコピーエラーログ。各変更後に(gitで変更をプルした後、ファイルを適切な場所に移動するために)セットアップスクリプトを実行し、実行後にターミナルに表示される指示に従ってデーモンリロード(正確な名前を思い出せません)を使用しています設定スクリプト...私のスクリプトの何かが重複を引き起こしているのではないでしょうか?それぞれが異なるログファイルのペアを使用している、誤って異なるサービスで奇妙な重複設定を行った可能性はありますか?

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

これはタイプミス(appnam)のように見えます。

サーバーが実行されていますか? socatと接続できますか?

1
MikeyB

次のように変更してください

uwsgi_pass unix:/home/me/appname/appname/appname.sock;
0
Gnought