侧边栏壁纸
博主头像
Jerry博主等级

FleetBoot个人博客

  • 累计撰写 22 篇文章
  • 累计创建 21 个标签
  • 累计收到 1 条评论

TongHttpServer 5.0 安装及配置部署

Jerry
2021-11-10 / 0 评论 / 0 点赞 / 518 阅读 / 10,862 字
温馨提示:
本文最后更新于 2021-11-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

安装步骤说明

一、程序组成

THS 程序主要由五部分组成:THS 主程序、HA 程序、web 管理后台、rest 集中管理程序,
国密证书解密工具。
THS 主程序为 httpserver,该程序为负载均衡程序。
HA 程序为 httpserverHA,通过该程序可以实现 THS 主备集群。
Web 管理后台用于界面配置启动 THS,服务器监控等。
rest 集中管理程序为 restprocess,提供

1.1 THS 主程序

image.png

1.2 HA 程序

image.png

1.3 web 管理后台

image.png

1.4 rest 集中管理程序

image.png

1.5 国密证书解密工具

支持 sm4-ecb 和 sm1-ecb 保护的加密证书解密,采用 sm1-ecb 保护的加密证书需要配
合硬件解密,如支持国密 sm1 算法的 ukey,需要硬件厂商提供 skf 动态库,如果硬件厂商
不提供 THS 运行平台系统版本的动态库,可以使用 windows 版的解密工具解密证书,然后
将证书拷贝到运行 THS 的服务器上,使用参考 用户手册 - 证书解密工具

二、软件安装步骤(标准版安装)

特别注意:安装路径不能含有中文字符。

1 拷贝文件至安装路径下

1)飞腾版本:将压缩包“TongHtpServer_5.Xx._arm.tar.gz”,拷贝到安装目录下
2)华为版本:将压缩包“TongHtpServer_5.Xx. _arm.tar.gz”,拷贝到安装目录

3)龙芯版本:将压缩包“TongHtpServer_5.Xx. _mips64el.tar.gz”,拷贝到安装
目录下
4)申威版本(中标麒麟):将压缩包“TongHtpServer_5.Xx. _sw.NeoKylin.tar.gz”,
拷贝到安装目录下
5)申威版本(银河麒麟、统信):将压缩包“TongHtpServer_5.Xx. _sw.tar.gz”,
拷贝到安装目录下
6)x86 版本:将压缩包“TongHtpServer_5.Xx. _x86.tar.gz”,拷贝到安装目录

7)海光版本:将压缩包“TongHtpServer_5.Xx. _x86.tar.gz”,拷贝到安装目录

8)兆芯版本:将压缩包“TongHtpServer_5.Xx. _x86.tar.gz”,拷贝到安装目录

9)Windows 版本:将压缩包“TongHtpServer_5.Xx.ra”,拷贝到安装目录下

2 解压安装

1)飞腾版本:tar -zxvf TongHtpServer_5.Xx._arm.tar.gz
2)华为版本:tar -zxvf TongHtpServer_5.Xx._arm.tar.gz
3)龙芯版本:tar -zxvf TongHtpServer_5.Xx. _mips64el.tar.gz
4)申威版本(中标麒麟):tar –zxvf TongHtpServer_5.Xx. _sw.NeoKylin.tar.gz
5)申威版本(银河麒麟、统信):tar –zxvf TongHtpServer_5.Xx. _sw.tar.gz
6)x86 版本:tar -zxvf TongHtpServer_5.Xx. _x86.tar.gz
7)海光版本:tar -zxvf TongHtpServer_5.Xx. _x86.tar.gz
8)兆芯版本:tar -zxvf TongHtpServer_5.Xx. _x86.tar.gz
9) Windows 版本:右键选择解压到当前目录即可

3 启动前路径配置

Linux 平台:
以安装路径 "/opt/TongWeb/THS" 为例说明。

  1. 切换到预安装目录 "/opt/TongWeb/THS/bin",命令行操作如下
    cd /opt/TongWeb/THS/bin
  2. 执行 replace.sh 脚本,示例如下
    ./replace.sh /opt/TongWeb/THS

注意:
路径最后不要带“/”,如果需要将配置好的 THS 移动到其他目录或其他服务器,在新
THS 目 录 下 执 行 replace.sh old_instal_dir new_instal_dir 进 行 替 换 , 其 中
old_instal_dir 为打包前 THS 的安装路径,例子中为/home/test/THS, new_instal_dir
为 THS 新的安装路径。

4 license 配置

THS 主程序需要 license 才能启动,支持 TW 企业版、安全版、国防版及 THS license,
只需将 license.dat 文件放在 THS 目录内或者 THS 同级目录即可。
image.png

5.程序启动

5.1启动主程序

cd 安装路径/THS/bin
./start.sh

平滑重启:
linux 平台支持平滑重启
cd 到"安装路径/THS/bin"
./start.sh reload

5.2启动 htpserverHA

cd 安装路径/THS/bin
./startHA.sh

5.3启动 web 程序

cd 安装路径/THS/web
./startWeb.sh

若./startWeb.sh 不带参数,则默认为 [:]:80 ([:]:80 表示监听本地所有 IP
的 80 端口,包含 ipv4 及 ipv6)

5.4启动 rest 集中管理程序

cd 安装路径/THS/bin
./startRest.sh

5.5停止命令

在start后加 空格 stop即可

./start.sh stop
./startHA.sh stop
./startWeb.sh stop
./startRest.sh stop

三、软件安装步骤(专机安装)

特别注意:安装路径不能含有中文字符。

1. 安装包选择

安装包使用原则:首先执行 arch 看 cpu 架构,输出 aarch64,选择 aarch64.rpm 包,输出 x86_64 选择 x86_64.rpm,输出 mips64el 选择 mips64el.rpm 包,有 dpkg 的选择对应deb 包,有 rpm

1)、飞腾版本+银河麒麟 v4:tonghttpserver_5.x.x.x_arm.deb
2)、飞腾版本+银河麒麟 v10:TongHttpServer-5.x.x.x-1.ky10.ky10.aarch64.rpm
3)、华为版本+银河麒麟 v10:TongHttpServer-5.x.x.x-1.ky10.ky10.aarch64.rpm
4)、龙芯版本+中标麒麟:TongHttpServer-5.x.x.x-1.ns7_4.mips64el.rpm
5)、海光版本+中科方德:TongHttpServer-5.x.x.x-1.nfs.x86_64.rpm
6)、兆芯版本+中科方德:TongHttpServer-5.x.x.x-1.nfs.x86_64.rpm

2.安装与卸载

DEB 包:
1、执行 dpkg -i tonghttpserver_5.x.x.x_cpu.deb 安装
image.png

2、执行 dpkg -L tonghttpserver 查看已安装的
image.png

3、执行 dpkg -P tonghttpserver 进行卸载
image.png

RPM 包:
1、执行 rpm -ivh TongHttpServer_5.x.x.x_.rpm 进行安装
image.png

2、执行 rpm -qa | grep TongHttpServer 查询安装版本
image.png

3、执行 rpm -e TongHttpServer-5.x.x.x-.rpm 进行卸载
image.png

3. 软件安装位置

安装完成后,THS会安装在/opt目录下,负载均衡的主程序httpserver在/opt/THS/bin
目录下,负载均衡主程序的配置文件 https.conf 在/opt/THS/bin 目录下;HA 的启动程序
httpserverHA 在 /opt/THS/bin 目 录 下 , HA 的 配 置 为/opt/THS/conf/ 下 的httpserverHA.conf。

4. license 配置

THS 主程序需要 license 才能启动,支持 TW 企业版、安全版、国防版及 THS license,
只需将 license.dat 文件放在 THS 目录内或者 THS 同级目录即可。
image.png

5. 程序启动停止

  • httpserver(负载均衡)
  1. 启动
service httpserver start
#或
cd /opt/THS/bin
./start.sh
#或
cd /opt/THS/bin
./start.sh reload(平滑启动)
  1. 停止
service httpserver stop
#或
cd /opt/THS/bin
./start.sh stop
  • httpserverHA(高可用)
  1. 启动
service httpserverHA start
#或
cd /opt/THS/bin
./startHA.sh
  1. 停止
service httpserverHA stop
#或
cd /opt/THS/bin
./startHA.sh stop
  • restprocess(API 接口)
  1. 启动
service restprocess start
#或
cd /opt/THS/bin
./startRest.sh
  1. 停止
service restprocess start
#或
cd /opt/THS/bin
./startRest.sh stop

6. 开机自启动

THS 默认提供了 httpserver.service、httpserverHA.service、restprocess.service
文件,httpserver 安装时已经设置了自启动,若需要 httpserverHA、restprocess 也能自
启动,安装完成以后执行,httpserverHA 需要配置网口、漂移 IP、防火墙需要开启 VRRP
协议参考首次启动前配置

systemctl enable httpserverHA
systemctl enable restprocess

四、控制台 web 页面

!!(专机版本没有web页面程序,以下配置修改,请前往安装目录的/bin/https.conf进行修改,注意不能使用记事本或导致编码报错)

Web 页面登录 THS 管理系统的初始账户(账号:admin 密码:admin123),为了保证安
全,第一登录后修改密码,并不要将 web 管理后台暴露在公网环境,功能主要分为以下模块。

4.1 内网访问

Web 程序默认使用 80 端口,浏览器输入:htp:/ + IP 地址 + 端口号,如 htp:/
192.168.137:80 格式, IPV6 使用 htp:/ + [ipv6 地址] + 端口号。

初始账户(账号:admin 密码:admin123)

五、部署VUE前端打包项目

5.1.添加监听窗口

image.png

5.2.配置项目路径及规则

多个端口的情况下,添加多个VirtualHost 标签即可,端口不能冲突
/opt/TongWeb/THS/dist为前端打包路径
8180为监听端口。与第一步一致按需修改。

<VirtualHost _default_:8180>
DocumentRoot "/opt/TongWeb/THS/dist"

<Directory /opt/TongWeb/THS/dist>
FallbackResource /index.html
</Directory>

#后端代理
ProxyPreserveHost On
ProxyPass /api/ http://192.168.1.88:8080/
ProxyPassReverse /api/ http://192.168.1.88:8080/

</VirtualHost>

保存重启即可。

5.3.配置静态文件压缩

将 html,css,js,xml 等文本文件压缩可以有效减小网络带宽,压缩会消耗 cpu,不建议将图片、视频文件压缩,将以下配置放在< VirtualHost>中,检查返回头中是否有 Content-Encoding: gzip 标志,有就表示开启成功。

#gzip
FilterDeclare COMPRESS CONTENT_SET
FilterProtocol COMPRESS change=yes;byteranges=no
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/html'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/css'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/javascript'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/javascript'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/x-javascript'"
FilterChain COMPRESS

5.4.配置https

普通https

在原来配置好的VirtualHost 中,添加以下内容,端口修改位443

<VirtualHost _default_:443>

#SSL
SSLProtocol TLSv1.2
SSLCertificateFile "crt/common_cert/server.crt"
SSLCertificateKeyFile "crt/common_cert/server.key"


#SSL config
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
</VirtualHost>

国密https

<VirtualHost _default_:443>

#gmssl crt
SSLProtocol GMTLSv1.1
SSLCertificateFile "crt/SS.pem"
SSLCertificateKeyFile "crt/SS.key.pem"
SSLCertificateFile "crt/SE.pem"
SSLCertificateKeyFile "crt/SE.key.pem"


#SSL config
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
</VirtualHost>

关于在非国产浏览器访问国密站点测试,请看参考:https://www.gmproxy.cn/index.html

5.5.配置强制https

假如是默认使用80和443端口,希望用户访问http://ip时,强制跳转到 https请求(URL重写)

配置中添加以下参数即可:

<VirtualHost _default_:80>
#强制跳转https
RewriteEngine on                
RewriteCond %{SERVER_PORT} !^443$    
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 
</VirtualHost>

5.6.websocket 配置

以下配置在ws/wss通用。

配置中添加以下参数即可:

<VirtualHost _default_:443>
#webSocket配置
RriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /api/?(.*) ws://127.0.0.1:9999/$1 [P,L]
</VirtualHost>

六、完整配置示例

#HTTP port:
Listen 80
Listen 443
<Proxy balancer://tongSSLCluster>
</Proxy>

#balancer node config
<Location /lbi>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from localhost
Allow From 192.168.1.0/24
</Location>

#<Location /server-status>
#SetHandler server-status
#Order Deny,Allow
#Deny from all
#Allow from localhost
#Allow From 192.168.1.0/24
#</Location>

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
#Header edit Set-Cookie "(?i)^((?:(?!;\s?Secure).)+)$" "$1; Secure"
#Header edit Set-Cookie "(?i)^((?:(?!;\s?HttpOnly).)+)$" "$1; HttpOnly"

#强制跳转https
<VirtualHost _default_:80>
RewriteEngine on                
RewriteCond %{SERVER_PORT} !^443$    
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 
</VirtualHost>

<VirtualHost _default_:443>
DocumentRoot "/opt/TongWeb/THS/dist"

<Directory /opt/TongWeb/THS/dist>
FallbackResource /index.html
</Directory>

ProxyPreserveHost On
ProxyPass /api/ http://192.168.1.88:8080/
ProxyPassReverse /api/ http://192.168.1.88:8080/

#webSocket配置
RriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /api/?(.*) ws://127.0.0.1:9999/$1 [P,L]


#server administrator
ServerAdmin you@test.com
BandWidthModule Off
ForceBandWidthModule Off
BandWidth all 0
MaxConnection all 0
BandWidthError 503

ExpiresActive On
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg  "access plus 24 hours"
ExpiresByType image/png  "access plus 24 hours"
ExpiresByType image/jpg  "access plus 24 hours"
ExpiresByType text/css  "now plus 2 hours"
ExpiresByType application/x-javascript  "now plus 2 hours"
ExpiresByType application/javascript  "now plus 2 hours"
ExpiresByType application/x-shockwave-flash  "now plus 2 hours"
ExpiresDefault "now plus 0 minutes"

#SSL
SSLProtocol TLSv1.2
SSLCertificateFile "crt/common_cert/server.crt"
SSLCertificateKeyFile "crt/common_cert/server.key"
#SSL config
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
</VirtualHost>

#Error log
ErrorLog "| /opt/TongWeb/THS/bin/rotatelogs /opt/TongWeb/THS/logs/error_log_%Y%m%d 86400 480"

#Log level
LogLevel warn

#Log config
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "| /opt/TongWeb/THS/bin/rotatelogs /opt/TongWeb/THS/logs/access_log_%Y%m%d 86400 480" combined
</IfModule>

#
#Deny access to the entirety of your server's filesystem. You must
#explicitly permit access to web content directories in other
#<Directory> blocks below.
#
<Directory />
    #Security settings, disable OPTIONS
    <Limit OPTIONS>
        Order deny,allow
        Deny from all
    </Limit>
    AllowOverride none
    #Require all denied
    Allow from localhost
</Directory>

<IfModule mpm_event_module>
    StartServers 3
    MinSpareThreads 75
    MaxSpareThreads 250
    ThreadLimit 64
    ThreadsPerChild 25
    ServerLimit 16
    MaxRequestWorkers 400
    MaxConnectionsPerChild 10000
</IfModule>
0

评论