TongHttpServer
TongHttpServer V6.0 (THS)是一款轻量级负载均衡软件,支持 OSI 四层七层负载均衡,采用多进程异步编程,具有占用系统资源少、性能高、支持并发数高、配置简单等优点。常用于配置 HTTP 静态资源服务器、正向代理服务器、反向代理服务器、负载均衡服务器。支持带权轮询、IP哈希、最小连接、随机、哈希等多种负载均衡算法,满足企业构建高可用、高扩展性、高性能的应用服务集群需求。
TongHttpServer 集中管理控制台(THSManager)支持对不同环境的多个 THS 节点进行配置、监控,支持将多个 THS 节点进行分组,同一分组中的 THS 配置相同,可通过 THSManager 统一下发,简化运维流程,提供专业的编辑界面,对 THS 配置指令进行提示、补全、纠错,支持 SSL 证书上传并下发到各个 THS 节点,支持通过 webshell 方式远程维护。
TongHttpServer 中代理配置文件的语法与 Nginx 基本相似及兼容。通常默认使用 Nginx 作为反向代理服务器,充分考虑到国产化要求,可以选择使用 TongHttpServer 来替代 Nginx。
TongHttpServer 功能
- 负载均衡 提供带权轮询、IP哈希、最小连接、随机、哈希等多种负载均衡算法,根据配置的策略将请求分发到后端应用服务器节点。
- 动静分离 提供基于正则的URI路由匹配,可实现将动态请求转发到应用服务器、静态资源不转发,实现动静分离,有效提高集群吞吐率。
- 反向代理 根据不同的URI将请求反向代理到不同应用服务器或不同的应用服务器集群,对客户端隐藏后端应用服务器信息。
- 高安全性 支持国际https、国密https加密传输数据,防止数据在传输过程中被恶意窃听、篡改。
- 高可靠性 通过IP漂移、VRRP协议支持主备切换,防止自身单点故障导致集群不可用。
- 高性能 采用零拷贝、多进程、缓存等技术,有效提高服务器性能,支持上万连接同时接入。
产品架构
产品设计采用模块化设计,分为高可用模块、管理服务模块、主程序模块,高可用模块用于防止主程序模块发生单点故障,管理模块用于配置管理系统。反向代理、负载均衡由主程序模块完成,该模块使用Master-Worker设计,管理进程实时监控工作进程是否异常,工作进程处理具体业务,该设计除了能充分利用服务器资源提升并发能力外,还能提升主程序的稳定性。
系统版本信息
[root@localhost ~]# cat /etc/os-release
PRETTY_NAME="UOS Server 20"
NAME="UOS Server 20"
VERSION_ID="20"
VERSION="20"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="https://bbs.chinauos.com/"
VERSION_CODENAME=fuyu
PLATFORM_ID="platform:uel20"
[root@localhost ~]# uosinfo
#################################################
Release: UOS Server release 20 (fuyu)
Kernel : 5.10.0-74.uel20.x86_64
Build : UOS Server 20 (1070e) 20240423 amd64
#################################################
[root@localhost ~]#
TongHttpServer安装启动停止及热加载
1、安装TongHttpServer
tar -zxvf TongHttpServer_6.0.1.1_x86_64.tar.gz -C /opt/TongHttpServer/
license授权
license.dat授权文件上传THS安装目录中即可
[root@localhost THS]# ls
bin conf crts html libs license.dat logs lualib modules temp tools
2、创建用户修改文件属主属组
创建httpserver用户组
useradd -r -s /sbin/nologin httpserver
修改目录属组
chown -R httpserver:httpserver /opt/TongHttpServer/THS/
修改httpserver.conf 主配置文件用户和组配置
user httpserver httpserver;
3、启动TongHttpServer
启动主程序
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh start
Software version: TongHttpServer/6.0.1.1
Build at Mar 20 2024 08:03:11
httpserver start success
查看程序进程状态
ps -ef |grep httpserver
4、停止TongHttpServer
停止主程序
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh stop
httpserver stop success
5、查看授权信息
在THS/bin目录下,查看license信息
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh -l
------------------License Info------------------
consumerName:
projectName:
productName:TongHttpServer
type:trial
versionNumber:6.0
expires:2024-09-18
------------------License Info------------------
------------------------------------------------
查看详细信息
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh -L
------------------License Info------------------
consumer_name=
project_name=
license_id=89910
license_type=trial
create_date=2024-06-18
end_date=2024-09-18
THS_Product_Name=TongHttpServer
THS_Version_Number=6.0
bindip=
TW_Hardware_Id=
TW_Max_Number=-1
THS_Admin_Console=1
THS_Edition=Standard
------------------License Info------------------
------------------------------------------------
6、热加载和重启
重启服务
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh restart
httpserver is running
热加载配置
[root@localhost THS]# /opt/TongHttpServer/THS/bin/start.sh reload
httpserver reload success
7、主配置文件
/opt/TongHttpServer/THS/conf/httpserver.conf
8、访问测试
http://ip:8080
9、作用域介绍
主程序配置文件根据逻辑意义不同,分成不同的作用域,不同作用域含有不同的配置项,main 作用域无大括号,其他作用域都由作用域名加大括号标识,配置可以在多个作用域中有效,如 access_log 在 http、server、location 作用域都有效。
- main:与具体业务无关的配置,如进程数、运行用户,错误日志等,为配置文件中块外配置。
- http:HTTP 服务相关的配置参数,如 gzip、keepalive、access_log 等。
- stream:TCP、UDP 相关配置参数。
- server:http、stream、mail 支持多个虚拟主机,每个虚拟主机对应一个 server 配置项。
- upstream:http、stream 负载均衡集群相关配置。
- location:http 服务中,特定的 URL 对应的配置项。
- mail:email 相关配置项
THSManager 集中管理平台安装
1、安装
tar -zxvf TongHttpServer_Manager_6.0.1.1_x86_64.tar.gz -C /opt/TongHttpServer/
2、初始化数据库
THSManager 首次使用时,需要先初始化数据库,数据库默认使用 sqlite。若有 MySQL 环境,可以在 “THSManager/conf/db.yaml” 中修改数据库为 MySQL,然后再执行初始化数据库操作。
1. 进入 “THSManager/bin” 目录。
2. 执行如下命令,初始化数据库。
./startManager.sh init
3. 输入 “yes”,待程序执行完成后,数据库及数据表初始化完成。
3、THSManager 服务启停
启停 THSManager
[root@localhost /]# /opt/TongHttpServer/THSManager/bin/startManager.sh start
ths-manager is running
重启THSManager
[root@localhost /]# /opt/TongHttpServer/THSManager/bin/startManager.sh reload
ths-manager reload success
停止THSManager
[root@localhost /]# /opt/TongHttpServer/THSManager/bin/startManager.sh stop
ths-manager reload success
4、登录 THSManager 集中管控台
在浏览器访问 THSManager 登录页面
http://<THSManagerIP>:<Port>
默认使用 “http” 访问 THSManager 集中管控制台;若已配置 HTTPS,则使用 “https”。
- THSManagerIP:THSManager 服务器的 IP 地址。
- Port:THSManager 集中管控制台端口,默认为 “8000”。
用户可根据需要打开 “${THSManager.home}/config/http.yaml” 文件,进行修改。http.yaml 为 THSManager 主配置文件,具有防篡改限制。若需要修改并使其生效,修改后需要重启THSManager。
THSManager集中管理平台节点管理
TongHttpServer 节点启动主程序和Agent后TongHttpServer节点自动注册到集中管理平台,可以通过THSManager平台批量部署以及管理TongHttpServer节点。
启动Agent
[root@localhost ~]# /opt/TongHttpServer/THS/bin/startAgent.sh start
ths-agent is running
查看启动状态
主程序和 Agent 启动成功后,在 THSManager 集中管控台可查看 THS 节点