python flask 假死情况处理+https证书添加

前言

当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。

假死处理

出现进程存在,无法访问,端口开放的情况是因为flask默认为单线程,如果出现一个请求出现错误,会默认等待进而阻碍了其他访问的处理,因此需要修改为多线程且设置超时。

首先我们需要将flask修改为多线程运行,不需要多进程,启动代码修改如下即可:

复制代码
app.run(host='0.0.0.0', port=443, ssl_context=ssl_context, threaded=True)

添加 threaded=Tru 即可,默认为False

然后需要添加超时处理:

复制代码
app = Flask(__name__)
app.config['TEMPLATES_AUTO_RELOAD'] = 30

然后使用nohub启动即可:

复制代码
nohup python3.11 main.py &

测试不会再出现假死情况。

https证书:

关于证书,首先我们可以去阿里云申请免费的证书,下载其他证书,下载下来为pem和key后缀文件

添加如下代码即可加载证书进行https访问:

复制代码
ssl_context  = ('configure/online.pem', 'configure/online.key')
app.run(host='0.0.0.0', port=443, ssl_context=ssl_context, threaded=True)

访问网址可以看到证书已经正常加载

另外如果需要仅允许网址访问,不允许ip访问,可以添加如下代码:

复制代码
@app.before_request
def limit_domain():
    if request.headers.get('Host') != 'www.myurl.com':
        return 'Forbidden', 403
相关推荐
m0_470857642 分钟前
php中的foreach循环?_?PHP中foreach循环的语法结构与遍历数组对象详解.txt
jvm·数据库·python
彳亍1013 分钟前
HTML5中Canvas局部刷新区域重绘的算法优化
jvm·数据库·python
2301_779622417 分钟前
为什么宝塔面板网站无法正常连接外部远程数据库_检查服务器安全组放行端口并开启IP授权
jvm·数据库·python
2401_833033628 分钟前
Go语言怎么做密码加密_Go语言bcrypt密码哈希教程【总结】
jvm·数据库·python
X566111 分钟前
mysql索引基数统计更新不及时_mysqlANALYZE分析表操作
jvm·数据库·python
艺杯羹11 分钟前
Tkinter实战:为CSDN爬虫打造可视化界面,从GUI到多线程完整方案
爬虫·python·开源
2301_7756398912 分钟前
React 中的渲染(Rendering)机制详解
jvm·数据库·python
星栈16 分钟前
Rust + DDD 三层架构:没有 Spring、没有 DI 容器,解耦能力一点不少
后端·github
m0_7403524217 分钟前
测试库与生产库怎么应对同步中断断点续传_无损发布与更新方案
jvm·数据库·python
正在走向自律20 分钟前
KingbaseES 命令行工具完全指南:ksql 常用操作与技巧
后端