Skip to content
Leo的技术分享
Go back

Nginx 作 WebService 反向代理

WebService 对外提供 SOAP 接口,SOAP 接口基于 HTTP + XML,因此,可以使用 Nginx 作用 WebService 的反向代理,以实现 WebService 请求的负载均衡功能。

本文使用 docker-compose 部署 nginx,有关 docker-compose 的使用,可以参考 《Docker Compose 入门教程》

文件目录结构如下:

.
├── conf.d
│   └── ksb.conf
├── docker-compose.yml
└── log
    ├── access.log
    └── error.log

其中,

docker-compose.yml 文件:

version: '3'
services:
  nginx:
    image: docker.io/nginx:alpine
    container_name: nginx
    restart: always
    ports:
      - "7000:8080"
    environment:
        TZ : 'Asia/Shanghai'
    volumes:
      - /home/lihao/docker/nginx/conf.d:/etc/nginx/conf.d
      - /home/lihao/docker/nginx/log:/var/log/nginx

其中,

Nginx 的 server 配置 ksb.conf

upstream router {
    server 10.88.115.114:5555 weight=2;
    server 10.88.115.137:80 weight=1;
}

server {
    listen       8080;
    server_name  10.88.115.137;
    charset utf-8;

    proxy_intercept_errors on;
    location / {
        proxy_pass    http://router;
        proxy_set_header   Host                 $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    $http_x_forwarded_proto;
        proxy_set_header   Via                  "nginx";
        proxy_read_timeout 660;
        proxy_connect_timeout 10;
        proxy_send_timeout 60;
    }
}

重点关注几个配置项:

先启动两个后端服务器,这两个后端服务器均对处提供 WebService 接口。然后使用 docker-compose up -d 启动 nginx 作为 WebService 接口反向代理。

客户端访问 nginx ,可以看到客户端 WebService 请求被正常转发到了两个 WebService 后端服务器处理,然后客户端通过 nginx 正常获取了后端服务器的返回结果。

参考资料


Share this post on:

Previous Post
Nginx 模块开发 Hello World
Next Post
Hexo 网站支持 HTTP/2