一口气在Ubuntu上安装Flask、uwsgi和Nginx。在Ubuntu上同时安装Flask、uwsgi和Nginx
本文的背景
我以前在Raspberry Pi上设置过Flask+uwsgi+Nginx,但这次我想在Ubuntu上进行相同的配置。
然而,由于参考文章散落在各处,所以我希望在本文中归纳出真正可行的配置方法。
本文的基本前提
・已经建立了Flask应用程序。
・已经安装了Ubuntu。
・已经安装了uWSGI。
・已经安装了Nginx。
・已经完成了Python环境的设置。
1. uwsgi.ini的设置
[uwsgi]
callable = app
master = true
socket = /tmp/uwsgi.sock
chmod-socket = 664
#wsgi-file = /home/akeyi2016/FlaskStudy/tutorial/hello.py
wsgi-file = /mnt/d/hello/hello.py
※ 不需要指定地址或端口号来连接到http或socket
※ nginx接受socket参数
2. 配置uwsgi服务
[Unit]
Description=uWSGI instance to serve flask
After=network.target
[Service]
User=akeyi2016
WorkingDirectory=/home/akeyi2016/FlaskStudy/tutorial
ExecStart=/home/akeyi2016/.local/bin/uwsgi uwsgi.ini
[Install]
WantedBy=multi-user.target
3. nginx.conf的设置
user ※<www-data>だと動かない場合がある
http {
...
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
}
4. uwsgi.conf的配置设置
server {
listen 80 default_server;
server_name _;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
}
}
5.激活服务 ( )
sudo systemctl start nginx.service
sudo systemctl start uwsgi.service
6. 设置常时启动如下。
sudo systemctl enable nginx.service
sudo systemctl enable uwsgi.service
7.备忘录
# uwsgi.serviceパス
/etc/systemd/system
# nginxファイル関連パス
/etc/nginx/nginx.conf
/etc/nginx/conf.d/uwsgi.conf
# nginxエラーログを確認する場合
tail /var/log/nginx/error.log -f
8.增加附加内容
请将以下用户名更改为nginx执行用户名的nginx.conf文件中。
user www-data ->default
↓
user <ログインuser名>
文献引用
以下是关于Nginx的一些资源链接:
– [https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html](https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html)
– [https://amateur-engineer-blog.com/flask-uwsgi-nginx/](https://amateur-engineer-blog.com/flask-uwsgi-nginx/)
– [https://qiita.com/Jazuma/items/521cf31538cb618d285a](https://qiita.com/Jazuma/items/521cf31538cb618d285a)
– [https://qiita.com/TrashBoxx/items/c4cbb2b2209c3bcb1689](https://qiita.com/TrashBoxx/items/c4cbb2b2209c3bcb1689)
– [https://qiita.com/akeyi2018/items/aeec3eb47416e51c3119](https://qiita.com/akeyi2018/items/aeec3eb47416e51c3119)