Skip to content

Instantly share code, notes, and snippets.

@ichpuchtli
Last active July 16, 2021 20:12
Show Gist options
  • Save ichpuchtli/7541462 to your computer and use it in GitHub Desktop.
Save ichpuchtli/7541462 to your computer and use it in GitHub Desktop.
nginx + uwsgi + flask on arch linux

Dependencies

$ pacman -Syu nginx uwsgi-plugin-python uwsgi python2-flask sqlite

Directory Overview

$ tree /srv/http
/srv/http
└── app
    ├── app.nginx.conf
    ├── app.uwsgi.ini
    ├── htdocs
    │   └── flask_app.py
    ├── log
    └── run
server {
listen 80;
server_name localhost;
root /srv/http/app/htdocs;
error_log /srv/http/app/log/error.log;
access_log /srv/http/app/log/access.log;
location / {
try_files $uri @context;
}
location @context {
include uwsgi_params;
uwsgi_pass unix:/srv/http/app/run/app.uwsgi.sock;
}
}
[uwsgi]
# the python module to import
module = flask_app
# the variable the holds the flask context
callable = app
plugin = python2
master = True
chdir = %dhtdocs
socket = %drun/%n.sock
pidfile = %drun/.pid
logto = %dlog/%n.log
uid = http
gid = http
user http;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
include /srv/http/*/*.nginx.conf;
}
[Unit]
Description=uWSGI Server
[Service]
ExecStart=/usr/bin/uwsgi --emperor "/srv/http/*/*.uwsgi.ini" --uid=http --gid=http
SuccessExitStatus=30
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
Restart=always
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment