Пример промежуточного сервера
Теги: digital-ocean
Пример для [digital-ocean]. Запустить дроплет с чистой убунтой.
Войти по shh: ssh elspeth@@superlists-staging.ottg.eu
sudo apt-het install nginx
sudo systemctl start nginx
sudo add-apt-repository pps:fkrull/deadsnakes
sudo apt-get update
sudo apt install python3 python3-venv
sudo apt install git
[nginx]
Минимальная конфигурация /etc/nginx/sites-available/superlists-staging.ottg.eu
. В данном случае прописаны пути для статических файлов [gunicorn]. Кроме того реализован [сокеты-unix]
server {
listen 80;
server_name superlists-staging.ottg.eu;
location /static {
alias /home/elspeth/sites/superlists-staging.ottg.eu/static;
}
location / {
proxy_pass http://unix:/tmp/superlists-staging.ottg.eu.socket;
proxy_set_header Host $host;
}
}
Линковка сервера
# reset our env var (if necessary)
elspeth@server:$ export SITENAME=superlists-staging.ottg.eu
elspeth@server:$ cd /etc/nginx/sites-enabled/
elspeth@server:$ sudo ln -s /etc/nginx/sites-available/$SITENAME $SITENAME
# check our symlink has worked:
elspeth@server:$ readlink -f $SITENAME
/etc/nginx/sites-available/superlists-staging.ottg.eu
# remove defoult link
elspeth@server:$ sudo rm /etc/nginx/sites-enabled/default
[gunicorn]
elspeth@server:$ ./virtualenv/bin/pip install gunicorn
elspeth@server:$ ./virtualenv/bin/gunicorn superlists.wsgi:application
2013-05-27 16:22:01 [10592] [INFO] Starting gunicorn 0.19.7.1
2013-05-27 16:22:01 [10592] [INFO] Listening at: http://127.0.0.1:8000 (10592)
[...]
Сервер можно запускать автоматически на начальной загрузке и перезагружать, если он не работает. В ubuntu это делается с помощью systemd в /etc/systemd/system/gunicorn-superlists-staging.ottg.eu.service
[Unit]
Description=Gunicorn server for superlists-staging.ottg.eu
[Service]
Restart=on-failure
User=elspeth
WorkingDirectory=/home/elspeth/sites/superlists-staging.ottg.eu
EnvironmentFile=/home/elspeth/sites/superlists-staging.ottg.eu/.env
ExecStart=/home/elspeth/sites/superlists-staging.ottg.eu/virtualenv/bin/gunicorn \
--bind unix:/tmp/superlists-staging.ottg.eu.socket \
superlists.wsgi:application
[Install]
WantedBy=multi-user.target
Здесь мы рестартим, если сервер прадает. Задаем юзера, от которого выполняется процесс. Задаем текущий рабочий каталог и файл переменных окружения (это можно делать и по другому)
ExecStart - это рабочий процесс. В конце прописано, что служба запускается на начальной загрузке.
Как сделать .enc читай тут в разделе “Using a .env File to Store Our Environment Variables”. .env не нужен на локальной машине, только на сервере.
После всего этого надо загрузить новый файл конфигурации и запустить сервак
# load new config file
elspeth@server:$ sudo systemctl daemon-reload
# always load service on boot
elspeth@server:$ sudo systemctl enable gunicorn-superlists-staging.ottg.eu
# tarts service
elspeth@server:$ sudo systemctl start gunicorn-superlists-staging.ottg.eu