版权声明:本文章博主原创文章,未经允许不得转载
配置环境:阿里云服务器
1、Nginx和uwsgi关系
Nginx相当于是服务器,负责接收请求
uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回
两个基本概念:
服务器(接收请求),应用程序(处理请求并返回)
通信过程:
客户端发送一个http请求,被nginx服务器接收,nginx服务器将请求转发给uwsgi,uwsgi将请求转发给实现uwsgi协议的应用程序(flask,gunicorn等等)
2、安装
启动虚拟环境
pyenv activate env352(注:python3.5.2环境)
安装flask和uwsgi
pip install flask
pip install uwsgi
安装nignx
sudo apt-get install nginx
启动nignx
sudo /etc/init.d/nignx start
3、修改配置
添加test.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "I am app"
添加uwsgi配置文件uwsgi_flask.ini
[uwsgi]
http = :9090 #方便HTTP访问调试
socket = 127.0.0.1:3031 #绑定socket通信端口,注:和后面的nignx配置一致
processes = 4
threads = 2
master = true
pythonpath = /home/kivvisystemserver/www/ #flask网站目录
module = test #运行的flask主文件
callable = app #flask主文件中的调用应用名称
memory-report = true
stats = 127.0.0.1:9191 #检测状态
daemonize = /var/log/uwsgi.log #后台运行并保存日志
使用uwsgi托管flask应用
bash中运行:uwsgi uwsgi_flask.ini
4、nignx
修改配置文件/etc/nginx/sites-enabled/default添加如下内容:
location/{
include uwsgi_params;
uwsgi_pass127.0.0.1:3031;
#try_files $uri $uri/ =404; 注:一定注释掉这行,否则无法跳转到Nignx,出现404错误
}
去掉前面uwsgi_flask.ini文件中的http= :9090参数
重启nignx
/etc/init.d/nignx restart
访问http://127.0.0.1:80/
至此搭建成功!
关闭uwsgi进程
killall -9 uwsgi
查看所有uwsgi进程
ps aux | grep uwsgi