pythonのDjangoフレームワーク製の「wagtail」を、速くて安定性の高いとされているWSGIサーバー「gunicorn」と「nginx」をプロキシーサーバーとして動かすまでの手順を記述してます。
環境
- OS ubuntu20.04.1
- python 3.8.2
- pip 20.2.2
- wagtail 2.10
- gunicorn 20.0.4
※「wagtail」を構築する手順はこちら
gunicornインストール
ここでは 「wagtail」は「wagtailvenv」という仮想環境にインストールしているので、仮想環境で作業します。
source ~/wagtailvenv/bin/activate
gunicornをインストールします。
pip install gunicorn
wagtailで作成したプロジェクトに移動します。
※ここでは「testproject」とします。
cd testproject
管理コマンドを実行
python manage.py collectstatic
仮想環境を終了
deactivate
gunicornサービス作成
サービスの構成ファイルを作成します。
sudo nano /etc/systemd/system/gunicorn.service
ユーザーを「mebee」として作成してます。
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=mebee
Group=www-data
WorkingDirectory=/home/mebee/testproject
ExecStart=/home/mebee/wagtailvenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/mebee/testproject.sock testproject.wsgi:application
[Install]
WantedBy=multi-user.target
daemonを再起動します。
sudo systemctl daemon-reload
サービスを開始します。
sudo systemctl start gunicorn
nginxインストール
nginxをインストールして、gunicornへのプロキシパスを設定します。
sudo apt install nginx
設定ファイルを作成します。
sudo nano /etc/nginx/sites-enabled/sample.conf
下記の内容で編集してます。
server {
listen 80;
server_name プライベートIP;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/mebee/testproject;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/mebee/testproject.sock;
}
}
デフォルトの方のポートを変更しておきます。
sudo nano /etc/nginx/sites-enabled/default
編集
server {
listen 81 default_server;
権限を設定しておきます。
sudo usermod -aG www-data mebee
sudo chown www-data /home/mebee/testproject.sock
nginxを起動します。
sudo systemctl start nginx
ブラウザから http://プライベートIP or サーバーアドレスにアクセスして以下の画面が表示されていれば完了です。
The post python製フレームワーク「wagtail」を「Nginx」+「gunicorn」で動かす手順 first appeared on mebee.