flask (应用框架)
pip install flask
- web框架,处理http的request和reponse
nginx (代理服务器)
- 负责静态资源发送、动态请求转发以及结果的回复,分配
uwsgi (后端服务器)
uwsgi: 用于uWSGI服务器和其他网络服务器间(nginx)的数据通信,就是规定一个程序如何与web服务器程序之间进行通信,从而可以让程序在服务器上跑起来
- 将http协议转换成语言支持的网络协议,比如将http协议转换成wsgi协议,使得Python可以直接使用
- c语言开发
- 负责接收 nginx 请求转发并处理后发给flask应用,以及接收flask应用返回信息转发给 nginx,中介
配置
uwsgi+nginx安装
- 注:如果遇到uwsgi command not found的问题
将uwsgi的路径加入/etc/profile中,然后source **
find / -name uwsgi 用于查找uwsgi的目录
uwsgi,为app配置启动文件
socket = 127.0.0.1:5000 # 启动程序时所使用的地址和端口,通常在本地运行flask项目,
chdir = /home/monkey/flask-message-board # 部署的项目目录
wsgi-file = run.py # flask程序的启动文件
callable = app # 程序内启用的application变量名
processes = 4 # 处理器个数
threads = 2 # 线程个数
stats = 127.0.0.1:9190 # 获取uwsgi统计信息的服务地址
pidfile = uwsgi.pid # 保存pid信息,方便停止服务和重启的时候用
deamonize = /home/monkey/flask-message-board/log/uwsgi.log # 后台运行时记录uwsgi的运行日志
lazy-apps = true # 当需要连接cassandra时,uwsgi无法启动服务,可以使用该选项设置
touch-chain-reload = true
module = manage #脚本
memory-report = true
- 配置好后,输入指令uwsgi uwsgi.ini启动
- 如看看大 [uWSGI] getting INI configuration from hello_uwsgi.ini, 则正常
nginx,使得http request请求过来时可以导向对应的位置
server{
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_CHDIR /home/monkey/flask-message-board; #项目根目录
uwsgi_param UWSGI_SCRIPT run:app; #启动程序的主程序
#root html;
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 上述代码中为nginx的nginx.conf中的一段配置
- 其中location为服务器访问的路径,括号里面为访问后进行分发的参数
服务启动
- uwsgi uwsgi.ini 在项目的目录下
uwsgi uwsgi.ini --deamonize #后台运行
uwsgi --stop uwsgi.pid #停止服务
- nginx启动
访问
- 浏览器中直接输入服务器IP即可