centos7部署uWSGI+Nginx+Flask

1.安装nginx

0.添加使用yum源安装

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
systemctl start nginx.service  #启动
systemctl enable nginx.service  #开机启动

1.依赖库安装

yum install gcc-c++   #编译源码用
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2.下载nginx

上官网查看当前版本情况:https://nginx.org/en/download.html,显示如下:
Mainline version 目前团队开发版
Stable version 稳定版
Legacy versions 历史稳定版本
建议选择稳定版。

wget -c https://nginx.org/download/nginx-1.14.2.tar.gz   //根据版本号下载

3.编译nginx

tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2

./configure     #使用默认配置
make
make install

4.启动nginx

whereis nginx  #查看安装路径
/usr/local/nginx/sbin/nginx     #启动nginx
/usr/local/nginx/sbin/nginx  -s stop #停止nginx
/usr/local/nginx/sbin/nginx  -s reload #重启nginx

5.配置nginx

nginx配置反向代理,将网络访问转发至uwsgi模块,uwsgi模块接收消息后,交由flask处理,在将flask处理结果反馈给nginx,从而完成一次访问。nginx和uwsgi采用socket交互。

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            include uwsgi_params;                       # 导入uwsgi配置 
        uwsgi_pass 127.0.0.1:5051;                  # 转发端口,需要和uwsgi配置当中的监听端口一致
            uwsgi_param UWSGI_CHDIR /root/webserver;         # 项目根目录
            uwsgi_param UWSGI_SCRIPT access:app; 
        }
}

配置完成后,重启nginx服务器。
参考文档:
https://www.cnblogs.com/Liang-jc/p/8137956.html
https://www.cnblogs.com/kaid/p/7640723.html

2.uwsgi

1.安装

pip install uwsgi
pip install flask

2.配置

新建flask项目,在项目目录下创建uwsgi配置文件,uwsgi配置文件支持多种格式,这里以ini格式为例。

[uwsgi]
socket = 127.0.0.1:5051      #监听socket端口
pythonpath = /root/webserver  #项目目录
module = access      #入口模块
wsgi-file = /root/webserver/access.py    #入口文件
callable = app   #启动函数,flask一般为 app
processes = 4     #uwsgi进程数
threads = 2     #uwsgi线程数
daemonize = /root/webserver/server.log  #日志路径

3.启动服务

uwsgi --ini webconfig.ini &   #启动uswgi模块

服务启动后,即可访问http://xxx.xx.xx.xx。

你可能感兴趣的:(centos7部署uWSGI+Nginx+Flask)