Skip to content

Instantly share code, notes, and snippets.

@petrikoz
Last active June 13, 2019 08:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petrikoz/06f1782d79158c5c8573 to your computer and use it in GitHub Desktop.
Save petrikoz/06f1782d79158c5c8573 to your computer and use it in GitHub Desktop.
uWSGI config for ItCase projects
[uwsgi]
emperor-tyrant = true
emperor = %dvassals
emperor-pidfile = %demperor.pid
uid = web
gid = www-data
vassals-include = %dvassals-include.ini
touch-reload = %dvassals-include.ini
log-date = true
log-truncate = true
logto = /var/log/uwsgi/emperor.log
[uwsgi]
# Placeholders
vassal_name = example
vassal_path = /home/web/%(vassal_name)
# Django RQ worker
rqworker_name = %(vassal_name)-rq-worker
exec-pre-app = pkill -f "%(rqworker_name)"
exec-post-app = /usr/bin/flock -xn %(vassal_path)/run/rqworker.lock -c '%(venv)/bin/python %(pythonpath)/manage.py rqworker --name %(rqworker_name) --worker-class rq.SimpleWorker &'
# Put this content in /etc/logrotate.d/web
/home/web/*/log/*.log {
create 644 web www-data
compress
copytruncate
daily
dateext
rotate 3
size 1M
su web www-data
}
[uwsgi]
master = true
auto-procname = true
processes = 8
enable-threads = true
harakiri = 60
post-buffering = 8192
buffer-size=32768
vacuum = true
procname-prefix = %(vassal_name)-
need-app = true
no-default-app = true
# Reload
reload-on-exception = true
touch-reload = %p
# Socket
chmod-socket = 666
socket = %(vassal_path)/run/uwsgi_%(vassal_name).sock
# Logging
disable-logging = true
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception=true
log-ioerror = true
log-date = true
logto2 = %(vassal_path)/log/uwsgi_%(vassal_name).log
# Application
chdir = %(vassal_path)/src
env = LANG=en_US.UTF-8
module = wsgi
pythonpath = %(vassal_path)/src
venv = /home/web/.virtualenvs/%(vassal_name)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment