部署flask前提
针对nginx和uwsgi已经安装完毕,并且已经正确配置
第一步,安装项目必要的库
因为我自己是用的centos7自带的python2.7环境,所以直接先在服务器上pip安装flask,如果项目需要其他的库,也需要提前安装
pip install flask
第二步,配置uwsgi.ini
看一下我的flask项目的结构
注意:uwsgiconfig.ini 需要在linux系统下进行生成,可用以下命令
vim uwsgiconfig.ini
配置uwsgiconfig.ini的内容如下
[uwsgi]
socket = 127.0.0.1:8002
chdir = /home/myweb #项目的根目录
wsgi-file = app.py #项目的启动页面
callable = app #项目的入口
processes = 4
threads = 2
uwsgi_read_timeout = 600
daemonize = /home/myweb/logs/uwsgi.log #日志文件
# stats = 127.0.0.1:9191
pythonpath = /usr/lib/python2.7/site-packages #python环境的位置
# 进程等待超过30秒自动结束进程
#harakiri = 30
第三步,修改Nginx配置文件
需要先找到Nginx配置文件的所在位置,我是采用编译安装Nginx,如果是用yum方式安装位置可能有所不同
如果找不到nginx配置文件nginx.conf的目录,可用以下命令进行查看
nginx -t
#返回结果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
若上述命令无效,请参考下面链接找到nginx配置文件位置
https://www.cnblogs.com/qianpangzi/p/10922420.html
找到了nginx配置文件的位置,然后打开该配置文件,修改其中的内容
vi /usr/local/nginx/conf/nginx.conf
需要修改的nginx.conf内容
server {
listen 80;
server_name myweb_39.105.197.193;
#charset koi8-r;
#access_log logs/host.access.log main;
charset UTF-8;
access_log /home/myweb/logs/access.log;
error_log /home/myweb/logs/error.log;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8002; #需要和uwsgi中socket项一致
uwsgi_param UWSGI_PYHOME /home/myweb/venv; #项目的虚拟环境,我的web网站没有使用虚拟环境,而是系统自带的环境
uwsgi_param UWSGI_CHDIR /home/myweb;
uwsgi_param UWSGI_SCRIPT app:app;
root html;
index index.html index.htm;
}
最后,使用命令开启部署的flask项目
fuser -k 8002/tcp #先杀掉监听的端口,端口根据你的nginx和uwsgi配置进行调整
cd /home/myweb/ #跳转到项目的根目录下
uwsgi uwsgiconfig.ini #最后启用uwsgiconfig.ini里的配置