2

私はhttp://www.obeythetestinggoat.com/book/chapter_08.htmlの本に従っていますが、gunicorn で nginx サーバーを実行するために UNIX ソケットを追加するように指示されています。これは私のnginxファイルです

server {
listen 80;
server_name mydjsuperlist-staging.tk;

location /static {
alias /home/elspeth/sites/mydjsuperlist-staging.tk/static;
}

location / {
proxy_set_header Host $host;
    proxy_pass http://unix:/tmp/mydjsuperlist-staging.tk.socket;
}
} 

Nginxは失敗せずにリロードし、nginx -tで確認しました

私が実行すると:

gunicorn --bind unix:/tmp/mydjsuperlist-staging.tk.socket superlists.wsgi:application

tmp フォルダーに mydjsuperlist-staging.tk.socket ファイルを正常に作成し、端末でこれを取得します

2016-09-01 18:56:01 [15449] [INFO] Starting gunicorn 18.0
2016-09-01 18:56:01 [15449] [INFO] Listening at: unix:/tmp/mydjsuperlist-staging.tk.socket (15449)
2016-09-01 18:56:01 [15449] [INFO] Using worker: sync
2016-09-01 18:56:01 [15452] [INFO] Booting worker with pid: 15452

すべて問題ないように見えますが、自分のサイト mydjsuperlist-staging.tk にアクセスすると、(502) 不良ゲートウェイ エラーが発生します。ポートを使用していたとき、サイトは完全に実行されていました。ここで何が間違っていますか?

4

3 に答える 3

2

同じ問題が発生し、同じチュートリアルも行っていたので、これに続く私の解決策は次のとおりです。 http://docs.gunicorn.org/en/stable/deploy.html

注: 代わりに Upstart を使用していません。SystemD サービスを使用しています。

1) でサービスを作る/etc/systemd/system/nginx.service

[Unit]
Description=Gunicorn server for {SITENAME}
After=network.target

[Service]
User={user}
Group=www-data
WorkingDirectory=/home/{user}/sites/{SITENAME}/source
ExecStart=/home/{user}/sites/{SITENAME}/virtualenv/bin/gunicorn --workers 3 --bind unix:/tmp/{SITENAME}.socket superlists.wsgi:application
Restart=always

[Install]
WantedBy=multi-user.target

2) http://docs.gunicorn.org/en/stable/deploy.htmlの次の手順に従って gunicorn.socketgunicorn.confを作成しましたが、ソケットのステータスが非アクティブであることに気付きました。それは必要はありません。

の gunicorn.conf ファイル/usr/lib/tmpfiles.d/gunicorn.conf

d /run/gunicorn 0755 someuser someuser -

次に、起動時にサービスが自動開始されるようにサービスを有効にします。

$ systemctl enable nginx.service $ systemctl enable gunicorn.socket

再起動するか、サービスを手動で開始します。

$ systemctl start nginx.service $ systemctl start gunicorn.socket

役立つヒント:

  • サービスが稼働していることを確認してください

    $ systemctl ステータス gunicorn.service

  • Nginx の設定が正しいかどうかを確認する

    $ sudo nginx -t

  • 置き忘れた手紙がないか確認する
  • ドメインを ALLOWED_HOSTS に文字列として入れてください。「 」が恋しいことに気付くのに 1 時間ほどかかりました

ALLOWED_HOSTS = [**'**{SITENAME}**'**]

実行するのに6時間ほどかかりましたが、初めて実行し、Unixの知識がまったくないので、問題ないと思います。

うまくいくまで試してみてください!!

于 2016-09-05T19:59:15.810 に答える