4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nginx + Flask + uwsgi (python3) 環境を Amazon Linux2 で動かす

Last updated at Posted at 2020-09-01

よく使うので起稿。
EC2でお手軽python httpサーバー。

インストールの順番によってはpython2になってしまってハマるので
EC2インスタンスの新規作成直後を想定しています。

準備

いつもの
uwsgi入れるためにpython3-develが必要。

sudo timedatectl set-timezone Asia/Tokyo
sudo amazon-linux-extras install epel
sudo amazon-linux-extras install nginx1
sudo yum groupinstall "Development Tools"
sudo yum install python3
sudo yum install python3-devel
sudo pip3 install flask
sudo pip3 install uwsgi
sudo yum update

cd
mkdir app logs

nginx

下記のようなのを追記。(tmp.sockにすると動かないっぽい・・)

/etc/nginx/nginx.conf
location / {
        include uwsgi_params;
        uwsgi_pass unix:///run/uwsgi.sock;
}

flask

いつもの

/home/ec2-user/app/app.py
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

uwsgi

chdirしないと動かない。

/home/ec2-user/app/app.ini
[uwsgi]
chdir = /home/ec2-user/app
module = app
callable = app
master = true
processes = 1
socket = /run/uwsgi.sock
chmod-socket = 666
vacuum = true
die-on-term = true

logto = /home/ec2-user/logs/uwsgi.log

#uwsgi service化

↓のファイルを作る。

/etc/systemd/system/uwsgi.service
[Unit]
Description = uWSGI
After = syslog.target

[Service]
ExecStart = /usr/local/bin/uwsgi --ini /home/ec2-user/app/app.ini
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

※たまにuwsgiのPathが違う時がある。which見て修正。

サービス起動、nginx再起動

sudo systemctl enable uwsgi
sudo systemctl start uwsgi
sudo systemctl restart nginx

#その他

デバッグ時は下記のあたりを見る。

/var/log/nginx/error.log
/home/ec2-user/logs/uwsgi.log

途中で困ったときのコマンド

uwsgi --wsgi-file app.py --http :5000
↑app.pyを手動で起動してみる

sudo /usr/local/bin/uwsgi app.ini
↑app.iniから起動してみる

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?