配置 NGINX

负载均衡器可以是任何能够运行 NGINX 的主机。本文讲述了如何将 NGINX 配置为 4 层负载均衡器(TCP),将流量转发到其中一个 Rancher Server 节点的过程。在此配置中,负载均衡器位于节点的前面。

说明

请勿将 Rancher 节点用作负载均衡器。

安装 NGINX

配置基于 NGINX 的负载均衡前,您需要安装 NGINX 和 stream 模块。Rancher 支持的 NGINX 版本包括:v1.14v1.15。 NGINX 官网提供了多种操作系统的安装包,您可以自行选择其中一种进行安装。所有的安装包里面都包含 stream 模块,所以不需要单独下载和安装 stream 模块。详情请参考NGINX 官方中文文档。建议您在这两个版本中选择一个,参考下文完成配置。

创建 NGINX 配置文件

安装 NGINX 之后,您需要使用节点的 IP 地址更新 NGINX 配置文件nginx.conf

  1. 打开一个文本编辑器(如 Notepad++),复制下面的代码模板,粘贴到文本编辑器中,将其另存为nginx.conf

  2. nginx.conf中, 使用节点IP 地址 替换(端口 80 和 端口 443)的<IP_NODE_1>, <IP_NODE_2>, 和<IP_NODE_3>

    注意事项: 可配置项请参考NGINX 文档: TCP and UDP Load Balancing

    NGINX 配置文件模板

    ``` worker_processes 4;

    worker_rlimit_nofile 40000;

  1. events {
  2. worker_connections 8192;
  3. }
  4. stream {
  5. upstream rancher_servers_http {
  6. least_conn;
  7. server <IP_NODE_1>:80 max_fails=3 fail_timeout=5s;
  8. server <IP_NODE_2>:80 max_fails=3 fail_timeout=5s;
  9. server <IP_NODE_3>:80 max_fails=3 fail_timeout=5s;
  10. }
  11. server {
  12. listen 80;
  13. proxy_pass rancher_servers_http;
  14. }
  15. upstream rancher_servers_https {
  16. least_conn;
  17. server <IP_NODE_1>:443 max_fails=3 fail_timeout=5s;
  18. server <IP_NODE_2>:443 max_fails=3 fail_timeout=5s;
  19. server <IP_NODE_3>:443 max_fails=3 fail_timeout=5s;
  20. }
  21. server {
  22. listen 443;
  23. proxy_pass rancher_servers_https;
  24. }
  25. }
  26. ```
  1. 替换完 IP 地址后,将nginx.conf保存到以下路径: /etc/nginx/nginx.conf

  2. 运行以下命令,更新 NGINX 配置:

    1. nginx -s reload

可选: 以 Docker 方式运行 NGINX

您可以使用软件包将 NGINX 安装在操作系统上,也可以将 NGINX 作为 Docker 容器运行,这样可以节省一些资源。

完成 IP 地址替换后,将文件另存为/etc/nginx.conf,运行以下命令即可启动 NGINX 容器。使用 NGINX v1.15 时,请将最后一行的“1.14”替换为“1.15”。

  1. docker run -d --privileged --restart=unless-stopped \
  2. -p 80:80 -p 443:443 \
  3. -v /etc/nginx.conf:/etc/nginx/nginx.conf \
  4. nginx:1.14