Appearance
代理与转发
网站和 API 使用 访问服务,按域名及路径处理 HTTP/HTTPS 请求;其他 TCP/UDP 服务使用 端口转发,按入口端口转发流量。下列操作需要对应模块的管理权限。
首次配置网站时,可先按发布第一个 HTTPS 服务走通完整流程,再按本页增加路径或端口规则。
新建访问服务
- 进入
访问服务 -> 添加访问服务 - 在
详细内容中填写域名、选择入口协议、填写入口端口 - 在
路由规则中,将根路径/的动作类型设为转发,填写后端完整地址(如http://192.168.8.223:8080);按需添加其他路径规则 - 使用 HTTPS 时,在
证书配置中选择覆盖该域名的有效证书,按需调整加密套件配置 - 保存后确认页面没有配置测试或加载错误,服务处于启用状态,再从客户端验证业务访问
域名与端口冲突
相同域名不能在相同入口端口上重复创建,已禁用但未删除的服务也占用该组合;不同入口端口可以使用同一域名。域名大小写和前后空格不能用来区分两个服务。
同一服务内不要同时填写匹配范围重叠的域名,例如 api.example.com 和 *.example.com。更换已有服务的证书后,需保存并检查实际部署结果,详见证书管理。
示例前提
以下示例可独立使用,域名和 IP 请替换为实际值。其中 192.168.8.10 是 HiHTTPS 服务器,192.168.8.223 是后端服务器。
- 将业务域名的 DNS 解析指向客户端可达的 HiHTTPS 地址
- 确保 HiHTTPS 能访问后端服务,并根据业务访问范围放通入口端口的防火墙、安全组和 NAT;host 网络模式下不需要增加 Docker 端口映射
- 使用 HTTPS 前,先在证书管理中申请或导入覆盖业务域名的有效证书及私钥
验证命令使用 curl --resolve 临时将域名指向 HiHTTPS,方便在 DNS 生效前测试;它仍保留域名用于 HTTP 请求和 TLS 证书校验。正式使用时仍需配置 DNS。
示例:HTTP 反向代理
场景:通过 http://web.example.com 访问内网网站 http://192.168.8.223:8080,适合受控内网或临时联调。
| 配置位置 | 配置项 | 值 |
|---|---|---|
| 详细内容 | 域名 | web.example.com |
| 详细内容 | 入口协议与端口 | HTTP,80 |
| 路由规则 | 路径 | /(根路径) |
| 路由规则 | 动作类型 | 转发 |
| 路由规则 | 转发目标 | http://192.168.8.223:8080 |
保存后,从客户端验证:
bash
curl -i --resolve web.example.com:80:192.168.8.10 http://web.example.com/应返回后端网站的页面或业务响应,而不是 HiHTTPS 管理页面。HTTP 不加密传输,面向公网或传输敏感信息时请使用 HTTPS。
示例:HTTPS 反向代理
场景:后端提供 HTTP,通过 HiHTTPS 对外提供 https://app.example.com。
| 配置位置 | 配置项 | 值 |
|---|---|---|
| 详细内容 | 域名 | app.example.com |
| 详细内容 | 入口协议与端口 | HTTPS,443 |
| 路由规则 | 路径 | /(根路径) |
| 路由规则 | 动作类型 | 转发 |
| 路由规则 | 转发目标 | http://192.168.8.223:8080 |
| 证书配置 | TLS 证书 | 覆盖 app.example.com 的有效证书 |
保存后,从客户端验证:
bash
curl -i --resolve app.example.com:443:192.168.8.10 https://app.example.com/应通过证书校验并返回后端业务响应。使用私有 CA 签发的证书时,先在客户端信任该 CA,或通过 --cacert /path/to/ca.pem 指定 CA 证书,不要用 -k 代替证书验收。
入口协议与后端协议相互独立
本例由 HiHTTPS 终止 TLS,客户端到 HiHTTPS 使用 HTTPS,HiHTTPS 到后端仍使用 HTTP,应在受信内网中使用。若后端链路也需要加密,转发目标应填写后端实际提供的 HTTPS 地址和端口。
选择 HTTPS 只会监听该 HTTPS 入口,不会额外启用 HTTP 入口,也不会自动将 HTTP 请求跳转到 HTTPS。
示例:同域名按路径分流
场景:通过 https://portal.example.com 访问网站,将 /api/ 下的请求转发到另一项 API 服务。
在 详细内容 中填写域名 portal.example.com,入口选择 HTTPS、端口 443;在 证书配置 中选择覆盖该域名的有效证书。在 路由规则 中添加 /api/ 规则,并保留根路径 / 作为兜底:
| 路径 | 动作类型 | 转发目标 | 用途 |
|---|---|---|---|
/api/ | 转发 | http://192.168.8.223:9000 | API 服务 |
/ | 转发 | http://192.168.8.223:8080 | 网站页面及其他请求 |
本例转发目标只填写协议、主机和端口,不附加路径,也不添加自定义重写配置,因此请求路径会保留:
https://portal.example.com/index.html→http://192.168.8.223:8080/index.htmlhttps://portal.example.com/api/users→http://192.168.8.223:9000/api/users
保存后,分别验证网站和 API(将请求路径替换为后端实际存在的页面或接口):
bash
curl -i --resolve portal.example.com:443:192.168.8.10 https://portal.example.com/index.html
curl -i --resolve portal.example.com:443:192.168.8.10 https://portal.example.com/api/users路径规则不会自动去掉前缀
此配置要求 API 后端能处理 /api/users,不会自动改成 /users。如果后端接口没有 /api/ 前缀,需要另行配置路径重写,或改用独立域名。填写 /api/ 时请保留末尾的 /;本例验证地址也包含此前缀。
示例:自定义 HTTPS 端口
场景:保留已有的 https://app.example.com 服务,使用 https://app.example.com:8443 发布另一项 Web 服务。
新增一个访问服务:
| 配置位置 | 配置项 | 值 |
|---|---|---|
| 详细内容 | 域名 | app.example.com |
| 详细内容 | 入口协议与端口 | HTTPS,8443 |
| 路由规则 | 路径 | /(根路径) |
| 路由规则 | 动作类型 | 转发 |
| 路由规则 | 转发目标 | http://192.168.8.223:9000 |
| 证书配置 | TLS 证书 | 覆盖 app.example.com 的有效证书,可复用 443 服务的证书 |
两个服务的入口端口不同,可以使用同一域名。证书校验的是域名,不需要为 8443 单独申请证书。确认入口不存在 Stream、系统服务或其他进程的监听冲突,并在服务器及上游网络设备放通 8443/tcp 后验证:
bash
curl -i --resolve app.example.com:8443:192.168.8.10 https://app.example.com:8443/应返回 9000 端口后端的业务响应。访问地址必须显式携带 :8443,省略端口会访问默认的 443 服务;不要使用管理端口 81 或系统内部保留端口,详见安装部署。
端口转发(Stream)
用于按端口转发 TCP/UDP 流量,例如 SSH 和游戏服务。本文示例为透传配置,不额外增加加密或身份认证。FTP 等使用独立控制连接和数据连接的协议,还需配置对应的数据端口与网络策略,不能只转发一个端口就认为完整可用。
配置项:
入站端口:对外监听端口转发主机:后端主机转发端口:后端监听端口TCP转发/UDP转发(可同时启用)
使用步骤:
- 进入
访问服务 -> 端口转发 -> 添加端口转发 - 填写:
入站端口:HiHTTPS 对外监听的端口,例如9090转发主机:后端服务地址,可填写域名、IPv4 或 IPv6转发端口:后端服务实际监听端口,例如8000- 按需勾选
TCP转发、UDP转发,至少启用一种
- 保存成功后确认规则已启用;若保存或配置测试失败,应按页面错误处理,不要把已提交表单当作已上线规则
- 应用使用 host 网络,不需要修改 Docker 端口映射;请在服务器防火墙放通该入口端口
示例:转发 TCP 服务
场景:将 9090 转发到内网 192.168.8.223:8000。
| 配置项 | 值 |
|---|---|
| 入站端口 | 9090 |
| 转发主机 | 192.168.8.223 |
| 转发端口 | 8000 |
| 协议 | 勾选 TCP转发 |
如果现场使用 UFW,并且只允许 192.168.8.0/24 网段访问,可按实际网段调整后执行:
bash
sudo ufw allow from 192.168.8.0/24 to any port 9090 proto tcp从允许的客户端使用对应业务客户端连接 192.168.8.10:9090,确认请求到达后端。nc -vz 192.168.8.10 9090 可检查 TCP 连接,但不能替代应用协议验收。
示例:同时转发 TCP/UDP
某服务同一端口同时使用 TCP 和 UDP 时,同时勾选 TCP转发 与 UDP转发。例如入站端口为 9000、允许网段为 192.168.8.0/24,使用 UFW 时分别放行:
bash
sudo ufw allow from 192.168.8.0/24 to any port 9000 proto tcp
sudo ufw allow from 192.168.8.0/24 to any port 9000 proto udp再分别使用支持 TCP 和 UDP 的业务客户端验证。UDP 没有 TCP 的连接握手,不能仅凭 TCP 探测成功判断 UDP 转发可用。不使用 UFW 的环境,在现有防火墙或安全组中配置等价规则,无需为本文示例安装 UFW。
端口转发与访问服务的选择
端口转发属于四层转发,不解析 HTTP 请求内容,也不按 HTTP 域名或路径分流。上面的透传示例可以转发 TCP 上的 HTTP 或 TLS 流量,但不会终止 TLS,证书仍由后端提供。若需要网站 / API 的反向代理、HTTPS 证书绑定、按域名或路径转发,请使用访问服务。
新增对外监听端口后,应同步维护服务器和上游网络设备的防火墙规则。
完成检查与日常变更
- 通过实际业务域名和入口端口访问,响应来自预期后端。
- HTTPS 连接通过证书校验;配置了访问控制时,同时验证允许与拒绝的请求。
- 端口转发按实际 TCP/UDP 协议验收,不把“端口看起来开放”当作业务正常。
- 修改后端、协议、端口或证书前记录原配置,重要服务在维护窗口变更。
- 停用或删除规则会影响业务访问;暂停使用时优先确认影响范围,不要用删除重建代替排查。
保存报错、返回 502、证书未更新或 Stream 不可达时,按常见问题逐项检查。
