坦克PWA3集成提示
坦克PWA3是坦克网络提供的一个基础网络架构,集成了 坦克AW,并提供 Web GUI 管理。可以使用 坦克PWA3 更多功能。
这个教程讲解坦克AW通过配置虚拟机实现HTTP代理。HTTP代理是坦克AW支持的重要功能之一,目前只支持HTTP代理,和FastCGI代理(测试)。HTTP代理是处理后端HTTP服务的。FastCGI代理则代理FastCGI协议的后端应用,FastCGI代理是测试中的功能,需要经过长时间检验才稳定。
下面通过配置虚拟机配置文件设置坦克AW的HTTP代理功能:
虚拟机配置文件test.shos.tconf
:
,,=《{》}#“"”"
域名=「test.shos」
端口=80
访问控制=访问控制一
# 默认页面,直接输入域名而没有指定文件名的时候,会显示默认页面
默认页=「index.php」
# 如果应用包含动态脚本,则需要设置应用目录,比如PHP。
!程序目录=/home/jgan/applications/php
# 如果你使用http访问这个域名,会跳转到https安全协议。如果你需要这个功能,在下面这行文字删除!号。
!重定向到HTTPS
# 坦克AW 开启 https 访问需要把前面的 ! 删除。删除后就可以通过 https 服务虚拟机。证书保存在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》指定的目录里面。如果你不需要这个 https 功能,可以在下面这行添加一个!号注释它。
# 即使删除!号,只表示这个虚拟机支持 https 协议,但它还没有证书。如果需要证书,还需要签发证书,签发证书证书有两种方式:第一种是 自己签发证书 ; 第二种是: 自动签发证书。
!HTTPS证书《
# 支持自己签发HTTPS证书,这个证书的CA根证书也是软件自己签发,如果你的项目必须使用https访问,但是又没有https证书,可以使用自己签发的https证书作为临时解决方案。自己签发的https证书由于没有得到第三方认同,它是有局限性的,并不能满足所有功能,但其可以提高一定程度的安全性。如果需要使用这个功能,把下面这行文字的!号删除。自签证书保存在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》指定的目录。
# 自己签发的证书,不受浏览器承认,浏览器会提示证书不信任。
!自己签发证书
# 注册邮箱用于接收 HTTPS证书 相关通知,比如:过期通知、更新通知等。
自动签发证书注册邮箱=xxx@xxx.xx
# 自动签发证书使用 ACME 协议自动获取证书,获取证书的方式有:
# 1. DNS 认证方式
# 1.1 DNS供应商 AWS Route53
!自动签发证书《
区域="xxx"
访问ID="xxx"
访问密钥="xxx"
》
# 证书目录默认等于《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》。如果需要自己设置,可以删除前面的!号,然后配置自己HTTPS证书路径。注意:如果你使用自签功能,则自签证书保存在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》指定的目录。
# 如果你使用第三方CA机构的https证书,一种推荐的做法是把自签功能关闭,先在《生产环境.tconf》配置文件的 虚拟机《HTTPS证书目录》里面创建一个与域名一样的文件夹,然后把你的https证书复制到域名文件夹里面。然后在下面配置。
!证书=虚拟机/HTTPS证书/你的证书目录/你的证书
!私钥=虚拟机/HTTPS证书/你的证书目录/你的证书key
》
!后端服务器代理《
瞄准路径=/
# 后端地址支持两种类型
# fcgi:// 表示后端是FastCGI接口后端,比如 PHP 程序。
# http:// 表示是http协议后端,比如普通 web 程序。
后端地址=http://127.0.0.1:4000
# 代理文件扩展名,不用加点。* (星号表示所有类型的文件)目前支持:
# php
只代理文件类型=「php」
》
域名为这个网站(虚拟机)指定一个域名,坦克AW就是根据域名与端口做路由决策的,正确的路由可以让数据流流到正确的后端服务。 目前坦克AW只有配置了域名才可以路由,这个域名分配可以利用坦克NS实现。
端口为这个网站(虚拟机)指定一个端口,坦克AW就是根据域名与端口做路由决策的。
域名与端口两者不可以完全相同的,两个虚拟机的域名相同,如果要正确路由到不同的后端,就必须依赖端口做决择(也就是说端口必须不同),防止路由混乱。
访问控制(虚拟机配置文件会套用生产环境的配置文件),是为虚拟机添加入口认证,通过认证的用户才开放与后端服务通信。虚拟机配置文件的访问控制
配置会套用生产环境的访问控制部件
部件,因为是部件,所以只需要在生产环境配置好,就可以在任何一个虚拟机配置文件套用这个部件。生产环境配置文件在本教程的附录可以查看。
程序目录,可以指定静态文件通过HTTP服务访问(比如:静态网站)。指定这个目录并开启(删除前面的叹号表示启用,添加叹号表示禁用)。当启用后,HTTP代理将不起作用,但FastCGI代理仍然需要指定这个目录,这是FastCGI协议规定的。目前不理解FastCGI协议也不重要,用到的时候才需要理解。
重定向到HTTPS,可以让浏览器访问网站的时候,自动从HTTP协议切换到HTTPS协议。
HTTPS证书,Https证书是网站安全的重要技术之一,证书可以保证你访问的网站是一个可以信任的网站,同时网站传输的数据通过证书进行加密,证书由第三方根证书组织签发给网站管理技术人员,技术人员把证书放到指定的目录并在虚拟机正确配置,那么网站就可以在路由的时候正确加载这个证书。证书配置是一个虚拟机配置子配置集合:
自己签发证书,一种为开发环境准备的签发证书的方式,启用这个功能后,那么自动生成的证书会保存到证书
和私钥
这两个路径里面。如果启用这个功能,在这个子集里面就不用配置其他选项了。
自动签发证书注册邮箱
和自动签发证书
,这两个参数是一起配置的,自动签发证书通过一种ACME协议向支持ACME服务的第三方根证书机构申请一个3个月的HTTPS证书,ACME协议最初由Let’s Encrypt开发(推荐使用AI工具提问更多信息)。这种短期证书需要在到期前重新申请(续约)才可以保证网站持续安全。自动签发证书注册邮箱
是用于接收通知的,比如证书准备到期,根证书机构(CA)会通过这个Email给你发送通知。自动签发证书
则是域名注册商提供的API接口,访问这个接口需要ID和密码参数等信息。用于认证这个域名是否属于你的。ACME签发的证书也保存在证书
和私钥
这两个路径里面。
证书
和私钥
,这两个路径是保存证书或私钥的路径,如果启用,这个参数会覆盖生产环境配置文件的虚拟机《HTTPS证书目录
,默认是关闭的,即使用生产环境配置文件的目录作为保存目录。这个配置是为特别需要而设计的。
后端服务器代理,是虚拟机代理后端的配置子集,如果不是提供静态文件访问,这个就是必须配置的了。
瞄准路径,就是域名后面的路径,如果无特别需要,一般是根路径,即/
。可以指定某个路径匹配后才路由到后端,比如/user
。这时,只有访问http://test.shos/user
才会请求后端地址选项里面指定的后端。
后端地址,后端地址是后端进程的真实地址,后端地址支持两种代理协议,一种是HTTP协议,一种是FastCGI协议。
只代理文件类型,只有访问特定的文件才把数据转发到后端,如果是HTTP协议,是*
号,如果是FastCGI协议,则支持php
,可以指定多种扩展名,扩展名之间使用逗号分开。
生产环境配置文件的内容生产环境.tconf
:
,,=《{》}#“"”"
语言=zh-CN
虚拟机《
目录=虚拟机
HTTPS证书目录=虚拟机/HTTPS证书
HTTPS根证书目录=虚拟机/HTTPS证书/根证书
》
# 请求量限制服务器每秒可以处理多少个请求,如果遇到DDOS攻击,会大量消耗服务器带宽,通过调整请求量限制对象,可以有效保护服务器带宽。如果不需要这个功能 可以添加 ! 注释它。
请求量限制《
# 请求桶大小 表示 最大处理请求数量。比如,如果是 100 ,当第 101 个请求进入的时候,就会阻塞请求。直到新的填充到来。
请求桶大小 = 100
# 请求量填充频率 (单位/每秒)。每秒会恢复一定的请求量到 请求桶,比如:如果是 20,当 100 个请求把请求桶用完的时候,下一个请求就会阻塞,等待 1 秒钟,会恢复 20 个请求到请求桶,此秒时间就可以处理这个请求了,这一秒内还可以处理 19 个请求。如果接下来 5 秒没有请求进来,请求桶 就会恢复 5 * 20 个请求量到请求桶。如果达到请求桶的大小,将会停止恢复。
请求量填充频率 = 20
# 限制策略有两种:缓慢处理 和 快速处理。
# 缓慢处理 是当请求超出 请求桶的请求到的时候,会等前面的处理结束,接着处理后面的请求。
# 快速处理 是当请求超出 请求桶的请求到的时候,不会等待前面的处理结束,马上返回错误给客户端。
限制策略 = 缓慢处理
》
访问控制部件《
访问控制一《
《
用户=「ganyaotong」
ganyaotong=18775099114
限制路径=「」
开始时间=
结束时间=
》
》
》
# 统计访问网站的访问者数据,这些数据用于网站的分析。
监视器《
# 监视数据保存根目录下还分别有不同的子目录,子目录就是监视组名。
监视数据保存根目录 = ./监视数据/
》
#软件运行过程会产生记录,包括:错误,消息。这些记录会对外输出给用户,当你使用 systemD 启动的时候,会保存到“记录保存文件”字设置的文件里面,当你在前台运行的时候,除了保存在上面指定的文件里面,还会输出到终端。如果不需要这个功能,请添加两个!号注释它。
运行情况记录《
记录保存文件=./日志.txt
》
#请求保镖默认关闭,这个功能可以让服务器请求坦克保镖的保护,如果服务器进程意外结束,坦克保镖将会通过企业微信通知你,方便你及时发现问题。如果你需要这个功能,请删除前面两个!号,并另外配置坦克保镖保护它。
!请求保镖《
我的名字=tank-aw
》
提供两个配置案例演示如何配置虚拟机以提供服务。
这个案例提供一个静态网站服务,无需配置后端服务。这是一个简单的配置。关键配置参数:
,,=《{》}#“"”"
域名=「wod.shos」
端口=80
# 默认页面,直接输入域名而没有指定文件名的时候,会显示默认页面
默认页=「index.html」
# 如果应用包含动态脚本,则需要设置应用目录,比如PHP。
程序目录=/home/jgan/applications/官方网站/
为保证虚拟机正常运行,程序目录需要保证有文件,默认是index.html
,另一个条件是需要使用wod.shos
域名访问,可以使用坦克NS软件
在局域网分配域名进行测试。
http后端是一个独立运行的应用服务,服务坦克AW就像访问后端一样。他的配置关键参数是这样的:
,,=《{》}#“"”"
域名=「t3.shos」
端口=80
后端服务器代理《
瞄准路径=/
# 后端地址支持两种类型
# fcgi:// 表示后端是FastCGI接口后端,比如 PHP 程序。
# http:// 表示是http协议后端,比如普通 web 程序。
后端地址=http://127.0.0.1:4000
# 代理文件扩展名,不用加点。* (星号表示所有类型的文件)目前支持:
# php
只代理文件类型=「*」
》
为保证整个服务可以运行,需要保证后端服务已经运行,并可以通过后端地址
访问。另一个条件是通过域名访问,可以使用坦克NS软件
在局域网分配域名进行测试。
坦克PWA3集成提示
坦克PWA3是坦克网络提供的一个基础网络架构,集成了 坦克AW,并提供 Web GUI 管理。可以使用 坦克PWA3 更多功能。