flask+uwsgi+nginx+cerbot配置

本文详细介绍了如何在Ubuntu上安装Flask和uwsgi,配置uwsgi以与Nginx通信,设置HTTPS证书,并处理常见问题,如socket选项缺失和配置加载问题。
摘要由CSDN通过智能技术生成

配置步骤

安装flask和uwsgi

pip install Flask uwsgi

创建一个简单的flask应用(app.py)或者是自己的flask项目

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello, World!'

配置uwsgi,这里我给出自己的配置

[uwsgi]
socket = :5000
wsgi-file = /root/blog/start.py
master = true
callable = app
chdir = /root/blog/
module = start:app
harakiri = 30
vacuum = true
die-on-term = true
limit-as = 512
buffer-size=65535
  • socket应该是和nginx通信的socket,注意不是http,因为uwsgi和nginx通信使用的是uwsgi协议
  • wsgi-file是程序启动文件,也就是python xxx.py的那个文件,注意写绝对路径
  • calllable是程序启动文件中应用的名字,一般就是app(xxx.run()那个xxx)
  • chdir是项目的根目录,建议写绝对路径
  • module的start是程序启动文件不带.py,app就是上面callable那个app
  • 其余参数不用修改

启动uwsgi

uwsgi --ini uwsgi.ini

 配置Nginx (/etc/nginx/sites-available/default)

server {
    listen 80;
    server_name your_domain.com;
 
    location / {
        include uwsgi_params;
        uwsgi_pass the_uwsgi_socket:port;
    }
}

需要修改的是your_domain.com是域名,the_uwsgi_socket就写0.0.0.0,port和uwsgi配置中socket端口保持一致,我这里就是5000

启动nginx

sudo systemctl start nginx

安装Cerbot

sudo apt-get install certbot python3-certbot-nginx

使用certbot为nginx配置https

sudo certbot --nginx

问题及解决

  • The -s/--socket option is missing and stdin is not a socket. 

https://www.cnblogs.com/qiaoer1993/p/16282109.html

  • unable to load configuration from uwsgi

https://stackoverflow.com/questions/34615743/unable-to-load-configuration-from-uwsgi

参考

How To Serve Flask Applications with uWSGI and Nginx on Ubuntu 22.04 | DigitalOcean

我的博客

不负长风

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Flask是一个基于Python的轻量级Web框架,它提供了简单易用的工具来构建Web应用程序。Flask具有灵活的设计,可以根据需求进行扩展和定制。它支持RESTful风格的API开发,并且具有良好的可扩展性,适用于开发小型到中型的Web应用。 uWSGI是一个Web服务器和应用服务器,它可以将Web应用程序从框架中分离出来,并通过WSGI协议与框架进行通信。它支持高并发和负载均衡,并且具有内置的缓存机制和性能监控。uWSGIFlask配合使用可以提高Web应用程序的性能和稳定性。 Nginx是一个高性能的开源HTTP服务器和反向代理服务器。它可以处理大量并发连接,并能有效地分发请求到后端服务器。Nginx的反向代理功能可以将请求转发给uWSGI服务器,然后由uWSGI服务器处理Flask应用程序的逻辑。 使用FlaskuWSGINginx的组合可以实现一个高性能的Web应用程序架构。首先,Flask用于开发Web应用程序的逻辑和路由。然后,uWSGI作为应用程序服务器,将Flask应用程序加载到内存中,并以WSGI协议与Nginx进行通信。最后,Nginx作为前端服务器,通过负载均衡和反向代理将请求分发到uWSGI服务器。 这种架构可以提供高并发、可扩展和稳定的Web应用程序。Flask提供了优雅的开发方式,uWSGI处理应用程序的逻辑和性能优化,而Nginx作为前端服务器提供高性能的负载均衡和反向代理。整个架构可以根据需求进行灵活的配置和扩展,以满足不同规模的Web应用程序的需求。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值