您现在的位置是:首页 > 文章详情

“NGINX邮件组历史”论坛上线了

日期:2025-02-24点击:32

NGINX 向云原生演进,All in OpenNJet 


背景

长久以来,forum.nginx.org 作为nginx邮件讨论组的论坛形式,是NJet以及广大的NGINX开发人员交流、讨论的主要资源站点,尤其是方便的搜索能力,使得开发人员可以方便的查询历史讨论信息。但很遗憾,该站点已经下线,F5推出了community.nginx.org, 但并没有把历史数据迁移过来。

OpenNJet因此决定从NGINX email 讨论组的邮件归档中,重构一个论坛,便于开发人员进行搜索历史数据。同时,该论坛直接采用了NJet实现的python应用服务器框架,也是NJet能力的一个证明

设计

部署架构

出于对NJet应用服务器能力的展示要求,NJet选择了基于python语言,django架构的开源论坛软件spirit(https://github.com/nitely/Spirit),不需要采用传统的 nginx 代理+python应用服务器的模式,spirit安装后,将直接在NJet进程内部运行,如下图展示

Email archive到论坛的转换模型

受限于spirit的模型, email archive转换为论坛时,不能够根据email进行树状转换,而仅仅实现了一层的扁平转换。举例来说,Email A 首先创建了一个主题的讨论邮件,后续Email B ,C 做了回复, Email D 针对Email C做了回复。所有这4封邮件,会转换为一个topic(即通过邮件A 的subject创建的topic)的讨论,该topic下会存在4条讨论。

论坛的用户直接从邮件的发送者转化而来,发送者的姓名+邮件地址构建为一个唯一用户

配置实例

python环境和spirit项目初始化
安装pyenv 以及建立虚拟环境与安装django-spirit等包

安装与配置数据库

配置njet 使用wsgi启动spirit论坛

Bash load_module modules/njt_python_wsgi_module.so; python_stack_size 2m; http { ... server { server_name 192.168.40.40; listen 192.168.40.40:80; location / { root /home/njet/spirit/nginxform; wsgi nginxform; } location /static/ { root /home/njet/spirit/nginxform/; expires 1y; add_header Cache-Control public; } } <br/>... } 

NJet启动

配置PYTHONPATH 后即可

Bash export PYTHONPATH="/home/njet/.pyenv/versions/spirit-env/lib/python3.8/site-packages:/home/njet/spirit/nginxform" /usr/local/njet_spirit/sbin/njet -p /usr/local/njet_spirit -c conf/njet.conf 

参考说明

1.为什么采用python 应用直接部署在NJet的架构

该部署模式,具备传统的部署模式有部署简便、开发简化、高性能的优势。

部署简便:

避免了proxy+python应用服务器部署架构的由proxy处理静态资源,应用服务器出来动态请求的模型,仅仅一个server就可以利用NJet的高效IO处理静态资源

开发简化:

python应用开发人员,仅仅编写同步调用的代码,无需考虑线程、异步调用, 业务请求就可以得以在NJet内部以类似协程的模型执行,IO操作不会被阻塞,从而实现业务的并行

高性能:

NJet中运行python 应用会比常见的python应用服务器有10倍以上的性能提升

2.当前上线nginx-dev的历史

NGINX email archive从https://mailman.nginx.org/pipermail/nginx-devel/获得

3.从NGINX email archive转换为论坛的脚本,借助于deepseek编写完成,如果有类似的需求,可以联系 njet-user@njet.org.cn 获取

4.Spirit 论坛软件的安装,可以参考其readdocs站点

其支持多种数据库连接,在本项目中,选择了mysql数据库,并选择了基于纯python实现的mysql connector驱动,是因为可以利用NJet特有的“同步编写,异步IO执行能力”

5.请直接访问 https://forum.njet.org.cn

NJet 应用引擎通过内核重构实现了独特的运行时动态配置加载能力,是新一代高性能 Web 应用引擎。NJet 拥有高性能数据面处理能力,将集群、高可用、主动健康检查、声明式 API 等多种辅助功能,通过 NJet 独特的副驾驶 CoPilot 服务框架调度,从而方便功能扩展,隔离管理 / 控制功能对数据面的影响,NJet 应用引擎性能超过 CNCF 推荐 Envoy 应用引擎的三倍。 邮件组  官网

原文链接:https://my.oschina.net/u/6606114/blog/17754739
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章