0

私は何時間もこれに取り組んできましたが、セットアップが機能しない理由がわかりません。exec にあるコマンドを単独で実行すると、ブラウザからページに問題なくアクセスできます。しかし、サービスとして実行しようとすると、502: Bad Gateway が表示されます。

最初に Unix ソケットを使用してみましたが、うまくいかなかったときは、IP とポートを直接接続しましたが、それでもうまくいきませんでした。

gunicorn.service:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=username
WorkingDirectory=/home/username/naomiselect
Environment="PATH=/home/username/naomiselect/naomienv/bin"
ExecStart=/home/username/naomiselect/naomienv/bin/gunicorn --workers 3 --bind local_ip:8000 naomiselect.wsgi:application

[Install]
WantedBy=multi-user.target

nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

サイト利用可能/naomiselect:

server {
    listen 80;
    server_name local_ip;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/username/naomiselect;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://local_ip:8000/;
    }
}

ディレクトリ グループと所有者は、それぞれ www-data とユーザー名であり、再帰的に、パーミッションは drwxrwxr-x です。

いくつかのチュートリアルを参照し、さまざまな方法を試しましたが、どれもうまくいかなかったときに、自分が何を間違っているのかわかりません。

4

1 に答える 1

1

つまり、(コメントで) のステータスは、gunicorn.service開始後に「実行中」ではなく「終了」と表示されます。

ほとんどの場合、これはサービスのType=構成ミスを意味します。デフォルトはType=simpleで、非分岐プロセスを想定しています。おそらく、デーモンは起動後にバックグラウンドに分岐し、systemd を混乱させます。

に設定されている場合 ( もも も指定されてい ないsimple場合のデフォルト)、ExecStart= で構成されたプロセスがサービスのメイン プロセスであると想定されます。Type=BusName=ExecStart=

に設定すると、 で構成されたプロセスが起動の一部として fork() を呼び出すforkingことが期待され ます。ExecStart=起動が完了し、すべての通信チャネルが設定されると、親プロセスは終了することが期待されます。

したがって、この仮説を確認するには、シェルからデーモン バイナリを実行します。シェルをすぐに解放する場合、デーモンは「フォーク」しているため、対応するオプションをユニット ファイルに渡す必要があります。

[Service]
Type=forking
于 2016-08-25T03:46:19.500 に答える