随着信息技术的飞速发展,企业对于高性能、高安全性的中间件需求日益增长。**东方通(300379)**是中国中间件领域的的开拓者和领军企业,是大安全及行业信息化解决方案提供商。东方通推出的 TongHttpServer(简称THS),是一款专为企业级应用场景打造的高性能服务代理中间件,在安全特性方面表现出色,为企业构建安全可靠的应用服务集群提供了坚实保障。
东方通 THS 产品概述
东方通 TongHttpServer 是一款功能强大的服务代理中间件,支持 OSI 四层七层协议,能够灵活地作为静态资源服务器、正向代理服务器、反向代理服务器以及负载均衡服务器使用。它提供了丰富的负载均衡算法,包括带权轮询、IP 哈希、最小连接、随机等,满足企业构建高可用、高扩展性、高性能应用服务集群的需求。
东方通 THS 在硬件兼容性方面表现出色,支持 x86_64、aarch64、mips64el、sw、loongarch64 等多种 CPU 架构的服务器,并适配 Windows 系统,为国产 CPU 和服务器提供了良好的支持。
THS 采用模块化设计,主要分为高可用模块、管理服务模块和主程序模块。高可用模块有效防止主程序模块的单点故障,确保系统的稳定运行;管理模块负责配置管理系统的各项参数;主程序模块则承担反向代理和负载均衡的核心任务,采用 Master-Worker 设计,管理进程实时监控工作进程的状态,一旦发现异常,能够迅速进行处理和恢复,这种设计不仅充分利用了服务器资源,提升了并发处理能力,还增强了主程序的稳定性。
THS 在运维方面提供了极大的便利,其可视化管理控制台让服务器资源消耗、集群并发情况等关键指标一目了然,方便运维人员实时监控和管理。可靠性方面,通过 IP 漂移、VRRP 协议支持主备切换,避免因单点故障导致整个集群不可用,确保业务的连续性。性能方面,采用零拷贝、多进程、缓存等技术,有效提高服务器性能,支持上万连接同时接入,满足高并发场景下的性能需求。此外,THS 还支持平滑升级配置,修改配置后无需重启,通过热加载命令即可完成配置升级,避免了业务中断。实时统计功能基于内存实时统计集群/节点并发、流量、每秒请求数等关键指标,并通过接口输出,便于与其他系统集成。
东方通 TongHttpServer 配套 TongHttpServer Manager 可视化统一管理平台,方便对 THS 集群进行节点管理,以及对不同环境(如,通用机、Docker、专用机、K8S等)的 THS 服务器集中管理。
东方通 THS 支持国密 HTTPS
东方通 TongHttpServer 支持 HTTP、HTTP2、HTTP3、HTTPS、国密 HTTPS 等多种协议,为数据传输进行加密,有效防止数据在传输过程中被恶意窃听和篡改,为企业的数据安全保驾护航。用户可在 THS 控制台对配置文件进行编辑,保存、热加载。在热加载时,THS 会自动检测配置文件语法是否正确,如有问题,会给出错误的行号,便于管理者快速识别和修订。TongHttpServer 支持 HTTPS 自适应功能,可以在同一端口同时访问国密 HTTPS 和国际 HTTPS,用户无需通过多个端口进行访问,只需准备配置好国密浏览器即可。
编辑 THS 配置文件,使用 ssl_gmtls 参数开启国密。
http { server { ... ssl_protocols TLSv1.2 TLSv1.3; ssl_gmtls on; ... } }
复制
东方通 THS 支持 HTTP 访问限连
在互联网应用中,恶意攻击者常常通过发起大量并发连接或请求来试图使服务器瘫痪,从而达到拒绝服务攻击(DDoS)的目的。THS 提供了强大的 HTTP 访问限连功能,帮助企业和开发者有效防范此类攻击,保障服务器的稳定运行。
THS 管理员可以在 THS 控制台方便地编辑 THS 配置文件,在 HTTP 段中增加配置参数 limit_conn
来限制连接数,通过配置参数 limit_req
来限制连接请求的速度。这种灵活的配置方式使得管理员能够根据不同的业务场景和安全需求,制定精细的访问控制策略。例如,在面对高并发的促销活动场景时,可以适当放宽限制,以保证正常用户的访问;而在日常运维中,则可以设置较为严格的限制,以防范潜在的恶意攻击。需要注意的是,如果同时设置了 limit_conn 和 limit_req,则 limit_req 优先。这意味着当连接速度限制生效时,将跳过连接数限制的设置,确保服务器能够优先根据请求速率来进行访问控制,更有效地应对突发的高流量访问,避免服务器因连接数过多而陷入困境。
为了更直观地展示 HTTP 访问限连的效果,下面我们进行演示。
在 THS 控制台,编辑配置文件 httpserver.conf
,增加如下配置:
http { ... limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s; limit_req zone=perip; ...
复制
以上参数的含义如下:
- $binary_remote_addr:表示客户端 IP 二进制地址,用于区分不同的客户端。
zone=perip:10m
:perip 是共享缓冲区名称,10M 是缓冲区大小。1M 的缓冲区可以存储大约 160000 个 IP 的访问信息,足以满足大多数业务场景的需求。rate=1r/s
:表示速率,每秒只能正常接收一次请求。这样的设置可以有效控制每个客户端的请求频率,防止恶意刷屏等行为对服务器造成过大压力。
接下来,我们使用 ab
工具对 THS 进行简单的测试。ab 是一款用于对 Apache HTTP 服务器进行基准测试的工具,它可以帮助我们模拟大量的并发请求,从而观察服务器在限流配置下的表现。ab 包含在 httpd-tools
安装包内,httpd-tools 是 Apache HTTP Server 提供的工具包,还包含 htdbm, htpasswd, htdigest 等多个工具。
执行命令,对 THS 模拟访问,发送 10 个并发请求。
ab -c 10 -n 10 http://192.168.43.91:8080/shawnyan/
复制
通过对比修改限流配置前后的情况,我们可以明显地看到限流后的效果,只有一个请求成功,其余 9 次请求均因超过限制而被拒绝,返回 503 服务不可用的错误码。
通过 THS 提供的监控接口获取 limit_req 的连接请求指标。
[shawnyan@ths1 ~]$ curl -s http://192.168.43.91:18000/thsapi/http/limit_reqs | jq { "perip": { "passed": 12, "skipped": 0, "delayed": 0, "rejected": 20, "exhausted": 0 } }
复制
查看访问日志,我们可以更详细地了解每个请求的处理情况:
[shawnyan@ths1 logs]$ tail -f host.access.log 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 200 4277 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-" 192.168.43.91 - - [17/Mar/2025:23:01:17 +0800] "GET /shawnyan/ HTTP/1.0" 503 456 "-" "ApacheBench/2.3" "-"
复制
从日志中可以看出,10 个并发请求中只有一个成功返回了 200 状态码,其余 9 个均返回了 503 状态码,表明服务器因限流策略而拒绝了这些请求。
其他安全项:多维度的安全生态
THS 还具备一系列其他安全特性,从多个维度保障企业应用的安全运行。
1. 细粒度的用户权限管理
THS 控制台内置了角色和用户控制机制,权限控制的颗粒度细化到了 THS 模块、菜单、操作项。THS 管理员可以根据不同用户的角色和职责,为其赋予相应的权限,既保证了用户能够完成自身的工作任务,又避免了权限过度集中带来的安全风险。例如,普通运维人员可能只被授予查看服务器状态和日志的权限,而高级管理员则拥有配置修改、用户管理等更高权限。此外,用户密码有效期可以设置为 0-60 天,当设置为 0 时,密码永不过期。
2. 升级到 openssl 3.0
openssl 是广泛使用的开源 SSL/TLS 协议库,THS 从 openssl 1.1.0 升级到 openssl 3.0 版本,可使 THS 支持更强大的加密算法和更安全的通信方式,有效抵御各种网络攻击,保护数据在传输过程中的安全性。
3. 普罗米修斯监控指标模板
THS 提供了普罗米修斯(Prometheus)监控指标模板,方便将监控数据导出到普罗米修斯。普罗米修斯是一款开源的系统监控方案,通过集成 THS 的监控数据,企业可以实现对 THS 服务器的实时监控、性能分析和异常告警。
4. IP 白名单
IP白名单机制是为了防止一些非法请求,保障系统的安全性及稳定性。只有当客户端用户的IP在IP白名单中时,服务才会正常提供服务;反之,则会拒绝服务,并提示报错 {"code":40014,"data":null,"msg":"IP地址错误"}
。通过这种方式,企业可以有效地限制对THS服务器的访问范围,只允许来自可信IP地址的请求进入系统,大大降低了被外部攻击的风险。
5. 链路追踪与 JWT 认证
THS 支持链路追踪 OpenTelemetry 遥测模块。同时,THS 支持 JWT(JSON Web Token)认证模块,使用指定的密钥验证提供的 JWT 来实现客户端授权。该模块默认禁用,用户可以根据实际需求自行开启。JWT认证为客户端的身份验证提供了一种简洁、安全的方式,适用于分布式系统中的身份验证和授权管理。
总结
东方通 TongHttpServer 凭借其在安全性、性能、兼容性、可靠性、运维便捷性等方面的卓越表现,为企业级应用提供了安全可靠的中间件解决方案。在数字化转型的浪潮中,选择一款安全可靠的中间件产品对于企业的长期发展至关重要,东方通 TongHttpServer 产品无疑是一个值得信赖的优秀选择。
相关阅读
Have a nice day ~ ☕
🌻 往期精彩 ▼
- 「合集」三年 50 篇,TiDB 干货全收录
- 「合集」MySQL 8.x 系列文章汇总
- GQL:SQL的新兄弟
- TiDB 新朋友 DBdoctor
- Oracle 数据库全面升级为 23ai
- 广东的崖山,中国的崖山数据库
- TiDB v8 发版!超硬核 v8 引擎!
- 几张图带你了解 TiDB 架构演进
- Easysearch 性能测试方法概要
- 一文带你了解 GB 18030-2022 字符集
- 一文带你了解 KING BASE 金仓数据库
- 全球 Oracle ACE 社区突破 500 位成员
- 如何选择适合的 MySQL Connector/J 版本
- 即将告别 PG 12,建议升级到 PG 16.3 版本
- IvorySQL 4.0 发布!新增支持 Ubuntu 系统
- 一文了解金仓数据库 KES 的 SQL Server 兼容性
- G-Star Landscape 2.0 重磅发布,助力开源生态再升级
- 【一文讲透(番外篇)】如何编译安装KWDB v2.0.4数据库
- TiDB x DeepSeek 打造更好用的国产知识库问答系统解决方案
– / END / –
👉 这里可以找到我
👉 这里有得聊
如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。
如果这篇文章为你带来了灵感或启发,请帮忙『三连』吧,感谢!ღ( ´・ᴗ・` )~