跳到主要内容
版本:Next

为应用设置反向代理访问

使用 Websoft9 应用商店部署应用,平台会自动为您的应用生成基于反向代理的域名绑定。

对于非商店部署的应用,本教程将引导您手动配置反向代理,以实现应用的互联网发布。

Websoft9 支持两种类型的反向代理服务:

原理​

Websoft9 控制台默认集成 NPM 作为反向代理服务(Reverse Proxy),作为后端应用与用户之间的访问桥梁。

反向代理是一种流行的网关服务器工作模式,它允许网关收来自客户端的请求,并将这些请求转发到后端服务(应用)。当后端服务处理完这些请求后,网关再将响应返回给客户端。

Websoft9 反向代理服务的工作流程如下:

  1. 客户端发送请求到反向代理服务 NPM。
  2. NPM 接收到请求后,根据配置决定将请求转发到哪个后端容器服务。
  3. 后容器服务处理请求,并将响应返回给 NPM。
  4. NPM 再将后端服务器的响应转发给客户端。

条件​

  • 开启服务器安全组的 80, 443 端口

  • 获取后端服务的访问地址和端口号

    • 当后端服务运行在容器中时,容器名 作为访问地址,容器端口作为被转发的端口
    • 当后端服务直接运行在服务器中时,docker0 网桥 作为访问地址,后端服务实际端口作为被转发的端口
    • 确保您了解后端服务所使用的协议类型,是 HTTP 还是 TCP/UDP

转发 HTTP/HTTPS​

在 Websoft9 托管平台的网关模块中,Proxy Host 是专门负责 HTTPS 反向代理功能的一个组件。

快速创建 HTTP 转发(绑定域名)​

  1. 进入 Websoft9 控制台 网关 模块,依次打开菜单: > Hosts > Proxy Hosts

  2. 点击 Add Proxy Host,新建 HTTP 转发

  3. 点击 Save 后,网关中便新增了一个 server 级别的虚拟主机配置。

自定义 location 指令​

Websoft9 网关管理界面支持对已有的 HTTP 转发增加个性化的 location 设置

  1. 进入 Websoft9 控制台 网关 模块,编辑目标 Proxy Hosts

  2. 打开 Custom Locations 标签页,开始设置 location, Forward Hostname 等

  3. 点击齿轮图标显示指令输入框,指令范例如下

    #proxy_pass http://$server:8080; 
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

自定义 server 级全局指令​

Websoft9 网关管理界面支持对已有的 HTTP 设置个性化的 server 的全局指令

  1. 进入 Websoft9 控制台 网关 模块,编辑目标 Proxy Hosts

  2. 打开 Advanced 标签页,开始设置

  3. 下面是一个可以覆盖默认 location / 的全局设置:

    location / {
    add_header X-Served-By $host;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass $forward_scheme://$server:$port$request_uri;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    }

开启 SSL​

参考:HTTPS 设置指南

设置访问控制​

参考:应用安全访问控制指南

转发 TCP/UDP​

在 Websoft9 托管平台的网关模块中,Streams 是专门负责 TCP/UDP 方向代理功能的一个组件。

前置准备​

转发操作​

  1. 控制台依次打开:【网关】>【Hosts】>【Streams】项

  2. 填写好 Incoming Port 以及被转发的 Forward Host 和 Forward Port()

TCP/UDP 转发适用于临时开启数据库类应用的外网访问。

相关操作​

查看 docker0 网桥地址?​

Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

有两种查看 docker0 网桥地址的方法:

  • 服务器中运行 docker network inspect bridge | grep Gateway 查看
  • 打开 Websoft9 控制台,通过:容器 > Networks,查看 websoft9 网络的 IPV4 Gateway