私はGunicornとNginxでホストしようとしているFlaskアプリケーションを持っています。私はいくつかのチュートリアルに続き、Nginxに "Welcome to Nginx"ページのレンダリングを停止させるようなことはできません。NginxはGunicornにトラフィックを転送しません
私はすでにSupervisorが3人のGunicornワーカーを正常に立ち上げ、Nginxもバックグラウンドで実行されていることを確認しました。 SSLは動作確認され、Nginxはポート443でトラフィックを取得します.GunicornとNginxが共有するソックスを所有しているユーザーと同じグループにNginxを追加しようとしました。
スーパーバイザーがGunicornを起動するために使用するbashスクリプトです。これは動作確認されています。
#!/bin/bash
NAME="Simon"
FLASKDIR=/var/www/Simon
SOCKFILE=/var/www/Simon/simon.sock
USER=glen
GROUP=glen
NUM_WORKERS=3
FLASK_SETTINGS_MODULE=config.py
FLASK_WSGI_MODULE=Simon.wsgi
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $FLASKDIR
source Simon/bin/activate
export FLASK_SETTINGS_MODULE=$FLASK_SETTINGS_MODULE
export PYTHONPATH=$FLASKDIR:$PYTHONPATH
# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
exec gunicorn Simon:simon \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
このサイトの設定:
upstream simon_server {
# fail_timeout=0 means we always retry an upstream even if it failed
# to return a good HTTP response (in case the Unicorn master nukes a
# single worker for timing out).
server unix:/var/www/Simon/simon.sock fail_timeout=0;
}
server {
listen 443 ssl;
server_name glencoverx.com;
client_max_body_size 4G;
access_log /var/www/Simon/logs/nginx-access.log;
error_log /var/www/Simon/logs/nginx-error.log;
location /static/ {
alias /var/www/Simon/static/;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
if ($scheme != "https") {
return 301 https://$host$request_uri;}
}
ssl_certificate /etc/letsencrypt/live/glencoverx.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/glencoverx.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
}
変なふうに十分な、ログは何の問題を示しません。私はNginxのデフォルトのサイト設定を完全に削除し、そのシンボリックリンクを削除しました。なぜNginxがGunicornと通信しないのか分かりません。
あなたの提案が原因であるかどうかは不明ですが、ポート80がリダイレクトされなくなったため、接続が突然拒否されました。 httpsでドメインに直接移動すると、502になります。 – smallpants
443に固定されているように見えます。私はプロキシをソックスに渡していませんでした。しかし、今はhttpsを直接使わないと接続できません。 – smallpants