install-nginx.rst
2.47 KB
Instalasi nginx dan uwsgi
Install Python Requerement:
Python3
$ sudo apt install -y uwsgi-core uwsgi-plugin-python3 python3-cookiecutter \
python3-pip python3-venv nginx
-
Buat Struktur Directory pada home Folder:
$ su - user $ mkdir -p wsgi/vassals $ mkdir logs $ mkdir tmp
-
Buat wsgi.py
$ cd wsgi $ vi wsgi.py
Isi degan script berikut
from pyramid.scripts.common import get_config_loader app_name = 'main' config_vars = {} config_uri = '/home/{home}/wsgi/app.ini' loader = get_config_loader(config_uri) loader.setup_logging(config_vars) app = loader.get_wsgi_app(app_name, config_vars) -
copy template file dari aplikasi menjasi app.ini dan edit app.ini
$cp ../apps/base/test.ini app.ini $vi app.ini
Tambahkan baris berikut ini:
[uwsgi] proj = {app_name} #edit disini samakan dengan directory chdir = /home/{user}/apps/base #edit disini (sesuaikan dengan instalsi) homedir = /home/{home} processes = 2 threads = 2 offload-threads = 2 stats = 127.0.0.1:9191 max-requests = 5000 master = True vacuum = True enable-threads = true harakiri = 60 chmod-socket = 020 plugin = python3 pidfile=%(homedir)/tmp/%(proj).pid socket = %(homedir)/tmp/%(proj).sock virtualenv = %(homedir)/env uid = sambara gid = www-data # Uncomment `wsgi-file`, `callable`, and `logto` during Part 2 of this tutorial wsgi-file = %(homedir)/wsgi/wsgi.py callable = app -
Buat file emperor.ini:
$ vi emperor.ini
Isi dengan script berikut:
[uwsgi] proj = sambara home = /home/{user} emperor = %(home)/wsgi/vassals limit-as = 1024 logto = %(home)/logs/emperor.log uid = {user} gid = www-data -
Buat Script Init Pada systemd:
$ vi /etc/systemd/system/{app_name}.uwsgi.serviceIsi dengan script berikut ini:
# /lib/systemd/system/emperor.uwsgi.service [Unit] Description=uWSGI {AppName} Emperor After=syslog.target [Service] ExecStart=/usr/bin/uwsgi --ini /home/{homedir}/wsgi/emperor.ini # Requires systemd version 211 or newer RuntimeDirectory=uwsgi Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target -
Jalankan dengan systemctl:
$ systemctl start appname.uwsgi.service