/etc/systemd/system/gunicorn.service
/etc/systemd/system/gunicorn.socket
/etc/tmpfiles.d/gunicorn.conf
/etc/nginx/sites-available/app
# nginx | |
upstream app_server { | |
server unix:/run/gunicorn/socket fail_timeout=0; | |
} | |
server { | |
listen 80; | |
server_name _; | |
location / { | |
try_files $uri @proxy_to_app; | |
} | |
location /static { | |
alias /home/user/app/static; | |
} | |
access_log /var/log/nginx/app_access.log; | |
error_log /var/log/nginx/app_error.log; | |
location @proxy_to_app { | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_redirect off; | |
proxy_pass http://app_server; | |
} | |
error_page 404 /404.html; | |
# redirect server error pages to the static page /50x.html | |
# | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root /usr/share/nginx/www; | |
} | |
} |
d /run/gunicorn 0755 www-data www-data - |
[Unit] | |
Description=app gunicorn daemon | |
Requires=gunicorn.socket | |
After=network.target | |
[Service] | |
PIDFile=/run/gunicorn/pid | |
User=www-data | |
Group=www-data | |
WorkingDirectory=/home/user/app | |
ExecStart=/home/user/app/env/bin/gunicorn --workers 2 --pid /run/gunicorn/pid app:app | |
ExecReload=/bin/kill -s HUP $MAINPID | |
ExecStop=/bin/kill -s TERM $MAINPID | |
PrivateTmp=true | |
[Install] | |
WantedBy=multi-user.target |
[Unit] | |
Description=top music gunicorn socket | |
[Socket] | |
ListenStream=/run/gunicorn/socket | |
[Install] | |
WantedBy=sockets.target |