web-dev-qa-db-ja.com

Ubuntuでのnginxとスーパーバイザーのセットアップ

このチュートリアルに従ってDjango-gunicorn-nginxのセットアップを使用しています http://ijcdigital.com/blog/Django-gunicorn-and-nginx-setup/ nginxのセットアップまで、動作しています。次に、スーパーバイザーをインストールして構成し、サーバーを再起動して確認したところ、502の不正なゲートウェイが表示されています。 Ubuntu 12.04 LTSを使用しています

/etc/supervisor/conf.d/qlimp.conf

[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log

その後、スーパーバイザーを再起動し、このコマンドを実行します$ supervisorctl start qlimpと私はこのエラーを受け取っています

unix:///var/run/supervisor.sock no such file

スーパーバイザーのセットアップに問題はありますか?

ありがとう!

50
rnk

ソケットファイルがないということは、おそらくスーパーバイザが実行されていないことを意味します。実行されない理由は、qlimp.confファイルに何らかのエラーがあるためかもしれません。あなたがするなら

Sudo service supervisor start

これが事実かどうかを確認できます。スーパーバイザがすでに実行されている場合、それは言います。また、エラーをキャッチしている場合、通常、supervisorctlよりも役立つエラーメッセージが表示されます。

65
kdazzle

私はあなたと同じ問題に遭遇しました、そして、数回後に、ここに解決策が来ます:

  1. 最初にapt-getスーパーバイザーバージョンを削除します。

      Sudo apt-get remove supervisor
    
  2. バックエンドスーパーバイザープロセスを強制終了します。

     Sudo ps -ef | grep supervisor
    
  3. 次に、最新バージョンを取得します(apt-getバージョンは3.0a8でした):

    Sudo easy_install(pip install) supervisor==3.0b2 
    
  4. 設定ファイルをエコーし​​ます(ルート権限):

    echo_supervisord_conf > /etc/supervisord.conf
    

5.supervisordを開始します。

   Sudo supervisord

6. Supervisorctlを入力します。

   Sudo supervisorctl

何でもできました!楽しむ!

25
Scen

これを試して

cd /etc/supervisor
Sudo supervisord
Sudo supervisorctl restart all
17
Anil

Supervisordがインストールされ、実行されていることを確認しますか? /var/run/supervisor.sockにソケットファイルがありますか?

このエラーは、制御CLIであるsupervisorctlが、デーモンであるsupervisordと通信するためにUNIXソケットに到達できないことを示しています。

/etc/supervisor/supervisord.confを確認して、unix_http_serverセクションとsupervisorctlセクションの値が一致するかどうかを確認することもできます。

これは、Ubuntuレベルの問題であり、Pythonの問題ではないことに注意してください。Django=またはnginxです。

12
Martijn Pieters

Ubuntu 16以降では、systemdへの切り替えが原因であると思われるため、この回避策は新しいサーバーで修正される場合があります。

 # Make sure Supervisor comes up after a reboot.
 $ Sudo systemctl enable supervisor

 # Bring Supervisor up right now.
 $ Sudo systemctl start supervisor

そして、スーパーバイザーのiconic.conf [私の例]のステータスを確認します

$ Sudo supervisorctl status iconic

enter image description here

PS:実行中にgunicornに問題がないことを確認してください。

9
Dinesh Sunny

このエラーは、おそらくあなたが特権を持っていないことが原因です。この方法でエラーを修正し、ターミナルを開いて、vim /etc/supervisord.confを入力してファイルを編集し、行を検索することができます

[unix_http_server]
; file =/tmp/supervisor.sock; (ソケットファイルへのパス)
; chmod = 0700;ソケットファイルモード(デフォルトは0700)

文字列;file=/tmp/supervisor.sockおよび;chmod=0700の先頭にあるセミコロンを削除し、supervisordを再起動します。

4
Karl Doenitz

/etc/supervisor.conf次の2つのセクションが存在します

[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
2

私の場合、スーパーバイザーは実行されていませんでした。私が実行する問題を見つけるには:

Sudo systemctl status supervisor.service

問題は、ログが存在しないディレクトリを指しているため、作成する必要があったことです。

私はそれが役立つことを願っています:)

2
Alan Wagner

次のようなことができます:-

Sudo touch /var/run/supervisor.sock
Sudo chmod 777 /var/run/supervisor.sock
Sudo service supervisor restart

間違いなく動作します。これを試してください。

2
Manish Silawat

Confファイルを作成し、以下に行を追加します

Nginxを使用するには、Nginxのインストール中にアクティブにしたシステムブート時の自動起動を無効にする必要があることに注意してください。

https://askubuntu.com/questions/177041/nginx-disable-autostart

注:スーパーバイザーを使用するには、すべてのスーパーバイザープロセスが「デーモンオフ」モードになっている必要があります

[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startretries=5
stopasgroup=true
stopsignal=QUIT
numprocs=1
startsecs=0
process_name=WebServer(Nginx)
stderr_logfile=/var/log/nginx/error.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/nginx/access.log
stdout_logfile_maxbytes=10MB

Sudo supervisorctl reread && Sudo supervisorctl update

enter image description here

0
Pratik Panchal
touch /var/run/supervisor.sock
Sudo supervisord -c /etc/supervisor/supervisord.conf

supervisorctlをすべて再起動した後

スーパーバイザポートをリッスンする場合

ps -ef | grep supervisord

プロセスを強制終了する場合

kill -s SIGTERM 2503  
0
ercvs