flask+uwsgi+nginx+cerbot配置

配置步骤

安装flask和uwsgi

bash 复制代码
pip install Flask uwsgi

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

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

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

bash 复制代码
[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

bash 复制代码
uwsgi --ini uwsgi.ini

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

bash 复制代码
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

bash 复制代码
sudo systemctl start nginx

安装Cerbot

bash 复制代码
sudo apt-get install certbot python3-certbot-nginx

使用certbot为nginx配置https

python 复制代码
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

我的博客

不负长风

相关推荐
威联通网络存储38 分钟前
TS-h3087XU-RP 汽车零部件质检追溯部署
python·汽车
你驴我44 分钟前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
后端·python
IT毕设实战小研1 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
harmful_sheep1 小时前
java group by常见用法
java·开发语言·python
whcyhhh2 小时前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python
宸津-代码粉碎机2 小时前
AI工程化高阶实战|从Demo到生产落地核心架构、全套源码与避坑指南
java·大数据·开发语言·人工智能·python·架构
郝学胜-神的一滴3 小时前
Effective Python 条款4:字符串格式化大乱斗
开发语言·网络·python·程序人生·软件工程
ynchyong4 小时前
Python 字符组合生成器:product 与 permutations 的实战对比
python·工具·字符串生产
benchmark_cc4 小时前
1000只ETF的5分钟K线如何批量获取?QuantDash分页策略与高性能Python实践
开发语言·人工智能·爬虫·python·算法·quantdash·量化数据源
sel_94 小时前
【PEFT】参数高效微调(PEFT)技术详解:从原理到 LoRA/QLoRA 实战
人工智能·python·深度学习·算法·机器学习·参数高效微调