假设ubuntu工作目录为Teamwork。
假设python3.5为当前python版本。
安装虚拟环境:pip install virtualenv
安装uwsgi:pip install uwsgi
启动虚拟环境,同时生成文件夹,并安装flask
virtualenv ENV_Flask # 在Teamwork目录下执行,生成目录ENV_Flask
source ENV_Flask/bin/activate # 激活虚拟环境
pip install flask # 在虚拟环境下安装flask
在Teamwork/ENV_Flask目录下,vim flask_main.py如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
在已激活的虚拟环境下,在Teamwork/ENV_Flask目录下执行:python flask_main.py测试http://127.0.0.1:5000正常
退出flask服务器后,开始进行nginx+uwsgi+flask配置
安装nginx
sudo apt-get install nginx
在Teamwork/ENV_Flask目录下,vim flask_nginx.conf
server {
listen 80;
server_name 192.168.1.103;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:5000;
include uwsgi_params;
}
}
删除nginx默认配置文件:sudo rm /etc/nginx/sites-enabled/default
为新配置建立软连接
sudo ln -s /home/ubuntu/Teamwork/ENV_Flask/flask_nginx.conf /etc/nginx/conf.d/
在Teamwork/ENV_Flask目录下,vim flask_uwsgi.ini
[uwsgi]
http=127.0.0.1:5000
wsgi-file=/home/ubuntu/Teamwork/ENV_Flask/flask_main.py
callable=app
touch-reload=/home/ubuntu/Teamwork/ENV_Flask/
touch-reload:动态监控文件变化,然后重载服务,是跟uWSGI的emperor有关的配置项,当这个路径下面的文件发生变化,服务就会重新加载,这在部署上线之后对项目内容进行修改的时候十分有用——即:修改flask文件,不用重启任何服务,刷新浏览器即可看到修改内容
启动服务(需要启动虚拟环境)
source ENV_Flask/bin/activate # 退出虚拟环境:deactivate
在Teamwork/ENV_Flask目录下,后台运行uwsgi
1、nohup uwsgi --ini flask_uwsgi.ini &
启动(/或重启)nginx
2、sudo service nginx restart
至此,如无意外,访问:http://192.168.1.103,即可出现hello world,80端口访问5000端口的flask应用。
3、剩下的工作就是修改Teamwork/ENV_Flask下的py文件了。
文件目录形如:
ubuntu@VM-0-8-ubuntu:~/Teamwork/ENV_Flask$ ll
total 64
drwxrwxr-x 6 ubuntu ubuntu 4096 Jan 29 16:24 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Jan 29 14:32 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Jan 29 14:33 bin/
-rw-rw-r-- 1 ubuntu ubuntu 147 Jan 29 16:24 flask_main.py
-rw-rw-r-- 1 ubuntu ubuntu 152 Jan 29 15:40 flask_nginx.conf
-rw-rw-r-- 1 ubuntu ubuntu 143 Jan 29 15:41 flask_uwsgi.ini
drwxrwxr-x 2 ubuntu ubuntu 4096 Jan 29 14:32 include/
drwxrwxr-x 3 ubuntu ubuntu 4096 Jan 29 14:32 lib/
drwxrwxr-x 2 ubuntu ubuntu 4096 Jan 29 15:15 log/
-rw------- 1 ubuntu ubuntu 21347 Jan 29 16:24 nohup.out