前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用nginx + uWSGI运行flask程序

使用nginx + uWSGI运行flask程序

作者头像
老高的技术博客
发布2022-12-28 08:35:54
5050
发布2022-12-28 08:35:54
举报
文章被收录于专栏:老高的技术博客

老高最近写了一个flask小应用,功能很简单,就是通过读取配置再显示ss的二维码配置,不过想让他运行起来统一管理,还是费了一些周折啊。

如果你自己Google过,你可能会发现一个关键字uWSGI,他就是本篇的主角。

名词解释

Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI。 uwsgi与WSGI一样,是一个通信协议。 uWSGI,一个实现了WSGI,uwsgi,http等协议的服务器,与nginx在一个层次。

鉴于国内的一些教程都写成翔了,那老高就赶紧记录分享一下。

ps. 这个教程不限定于flask、web.py、django同样适用。

安装环境

Centos x64 python 2.6

安装uWSGI

代码语言:javascript
复制
pip install uWSGI

安装配置virtualenv

一般我们会用virtualenv配置项目的运行环境

代码语言:javascript
复制
pip install virtualenv

# 假设 ~/app_dir 为你的项目目录
mkdir ~/app_dir && cd ~/app_dir

# 最简单的flask示例
vi hello_world.py

# add

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run('0.0.0.0', 8080)

--------:wq

virtualenv venv

# 激活virtualenv
. venv/bin/activate

#pip install flask qrcode image
pip install flask

# 退出virtualenv
deactivate

测试运行

项目与运行环境已经准备完毕,我们先用uWSGI现在试试运行项目。

代码语言:javascript
复制
# 激活virtualenv
. venv/bin/activate
python hello_world.py

# 现在访问你的ip:8080试试看

nginx配置

这里我们使用http反向代理

代码语言:javascript
复制
vi hello_world.conf

server{
    listen 80;
    location / {
        proxy_pass        http://127.0.0.1:9090;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   Referer http://$host;
    }
}

运行uWSGI服务器

代码语言:javascript
复制
uwsgi --http-socket 127.0.0.1:9090 --wsgi-file /root/app_dir/hello_world.py --callable app -H /root/app_dir/venv
或
uwsgi --http :9090 --wsgi-file /root/app_dir/hello_world.py --callable app -H /root/app_dir/venv

以上命令我们使用http运行uWSGI服务器,绑定端口9090,用绝对路径指定了入口文件hello_world.py,并使用-H参数指定virtualenv的地址。

当然,运行uWSGI服务器的方式还有很多种,比如我们可以以配置文件的形式启动,再比如我们还可以使用sock的形式运行,当然相应的nginx反响代理也需要同时修改。

Reference

http://stackoverflow.com/questions/7739810/wsgi-vs-uwsgi-with-nginx http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装环境
  • 安装uWSGI
  • 安装配置virtualenv
  • 测试运行
  • nginx配置
  • 运行uWSGI服务器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档