Nginx 作 WebService 反向代理
WebService 对外提供 SOAP 接口,SOAP 接口基于 HTTP + XML,因此,可以使用 Nginx 作用 WebService 的反向代理,以实现 WebService 请求的负载均衡功能。
本文使用 docker-compose 部署 nginx,有关 docker-compose 的使用,可以参考 《Docker Compose 入门教程》。
文件目录结构如下:
1 | . |
其中,
ksb.conf
:nginx 的server
配置文件docker-compose.yml
:docker-compose 使用access.log
:nginx 访问日志error.log
:nginx 异常日志
docker-compose.yml
文件:
1 | version: '3' |
其中,
environment
:TZ : 'Asia/Shanghai'
用于正确设置时区,避免 nginx 日志打印时间不正确volumes
:方便直接在宿主机设置 nginx 配置文件,以及查看 nginx 输出日志ports
:设置端口映射,方便在外部使用7000
端口访问 nginx
Nginx 的 server
配置 ksb.conf
:
1 | upstream router { |
重点关注几个配置项:
upstream
:用于配置 nginx 后端服务器(即 upstream,上游服务器),这里我们配置了两个后端服务器,并设置转发的权重分别为 2 和 1proxy_pass
:配置代码转发,即使用上面upstream router
作为后端服务器转发proxy_read_timeout
:nginx 与后端服务器连接成功后,后端服务器响应的超时时间,即后端服务器处理请求的超时时间,由于后端服务器处理请求的最长时间为 600 秒,这里设置 660 秒proxy_connect_timeout
:nginx 与后端服务器连接的超时时间proxy_send_timeout
:后端服务器完成请求处理后,传输完整数据的超时时间
先启动两个后端服务器,这两个后端服务器均对处提供 WebService 接口。然后使用 docker-compose up -d
启动 nginx 作为 WebService 接口反向代理。
客户端访问 nginx ,可以看到客户端 WebService 请求被正常转发到了两个 WebService 后端服务器处理,然后客户端通过 nginx 正常获取了后端服务器的返回结果。