图解CentOS7下nginx+uwsgi+flask 环境搭建
按很简单,重点是配置。。。 。。。
一、安装nginx
具体操作请参考本头条号中《图解在CentOS7配置nginx服务(支持多域名,禁IP直访,防恶意解析)》一文
安装完毕后能够直接支持静态网页访问,今天安装的uwsgi和flask是提供基于python的 动态网页实现。
二、安装python3
CentOS7下默认使用的是python2,似乎现在用python3才是主流了,因此请安装python3。
具体操作请参考本头条号中《在终端命令行下为CentOS7安装Python3(系统自带的是Python2)》一文
安装完毕后,2、3两个版本并存,互不干扰。执行python3和pip3的时候使用的是版本3。
三、安装uwsgi和flask
pip3 install flask
pip3 install uwsgi
两条命令搞定
四、【重点】配置文件修改
1、定义一个uwsgi的ini文件,该文件负责定义出uwsgi对外工作端口,并指定Flask项目的程序代码及app对象,
命令行启动
uwsgi --ini /root/配置.ini
2、nginx配置中,定义一个服务,将yiuwsgi_pass 指向 uwsgi对外工作端口
具体配置参考
1、nginx中的配置 参考
server {
listen 80 ;
server_name 你的域名;
root /工作目录;
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5051;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
注意其中5051是指向uwsgi的端口,具体值由uwsgi配置文件内设置。两处配置中端口需要一致。
2、uwsgi配置文件参考
[uwsgi]
#uwsgi的客户端将要连接的socket
socket = 127.0.0.1:5051
#载入文件
wsgi-file = /root/1111.py
callable = app
#为预先派生模式设置工作进程的数量
processes = 4
threads = 2
daemonize = /root/server.log
其中socket定义了uwsgi的对外端口,nginx通过该端口与之通讯。
五、测试实录
准备一段测试代码
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "这是一个Flask程序!"
if __name__ == "__main__":
app.run()
将代码放在/root目录下备用
同时在/root目录下创建uwsgi配置文件 demo1.ini
[uwsgi]
#uwsgi的客户端将要连接的socket
socket = 127.0.0.1:5051
#载入文件
wsgi-file = /root/1111.py
callable = app
#为预先派生模式设置工作进程的数量
processes = 4
threads = 2
daemonize = /root/server.log
最后修改nginx的配置文件,文件为 /etc/nginx/nginx.conf
server {
listen 80 ;
server_name www.pianyixing.com;
root /root;
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5051;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
实际运行效果
更多的配置细节,建议您参考专门的书籍。
敬请继续关注“有只狗狗叫多多”,不要错过哦!感谢您收藏、转发。
閱讀更多 有隻狗狗叫多多 的文章