ubuntu18でFlaskのアプリ外部公開
まず
sudo apt install -y nginx ufw pip3 install flask uwsgi sudo ufw allow 80 sudo ufw allo 443
つぎ
cd /etc/nginx/sites-available/ sudo vim hogehoge.com.conf
server { listen 80; server_name hogehoge.com; location / { include uwsgi_params; uwsgi_pass unix:///tmp/uwsgi.sock; } }
cd ../sites-enabled sudo ln -s ../sites-available/hogehoge.com.comf
そして
cd ~ mkdir flask cd flask vim app.py
from flask import * app = Flask(__name__) @app.route("/") def hello(): return "neko_ni_naritai" if __name__ == "__main__": app.run(debug=True)
とりあえず
python3 app.py
最終確認
vim myapp.ini
[uwsgi] module = app callable = app master = true processes = 1 socket = /tmp/uwsgi.sock chmod-socket = 666 vacuum = true die-on-term = true #venv = /home/syaro/.pyenv/versions/3.7.0/ #venv使う人は使おうね logto = log_%n.log user = syaro
これで一応うごく
$ uwsgi --ini=myapp.ini
これでscreenとかsupervisorとか使うのもあり /usr/bin/pythonが2.xの人は、
cd /usr/bin/ sudo unlink python sudo ln -s python3 python
にしたほうがうまくうごく
これをsystemdに登録
sudo vim /etc/systemd/system/uwsgi.service
[Unit] Description = uwsgi [Service] Restart = always WorkingDirectory=/home/syaro/flask ExecStart = uwsgi --ini /home/syaro/flask/myapp.ini ExecReload = /bin/kill -s HUP ${MAINPID} KillSignal = kill -QUIT User = syaro Group = syaro [Install] WantedBy = multi-user.target
sudo systemctl restart uwsgi sudo service nginx restart
できたああああああああああああああああああああああああああああああああああああああ