阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何使用Nginx实现HTTP负载均衡

366次阅读
没有评论

共计 2298 个字符,预计需要花费 6 分钟才能阅读完成。

以下是用于配置 nginx 负载平衡的简单示例文件。主要功能是:

用户访问 http://www.linuxidc.com 并将其负载均衡到四台服务器:192.168.5.2:80、92.168.1.3:80、192.168.5.4:80、192.168.1.5:80

用户访问 http://m.linuxidc.com 并将其负载均衡到 192.168.5.7 服务器的端口 8080、8081 和 8082。

user  www www;

worker_processes 10;
 
#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

      use epoll;

      worker_connections 51200;

}

http

{

      include      conf/mime.types;

      default_type  application/octet-stream;

      keepalive_timeout 120;

      tcp_nodelay on;

      upstream  www.linuxidc.com {

              server  192.168.5.2:80;

              server  192.168.5.3:80;

              server  192.168.5.4:80;

              server  192.168.5.5:80;

      }

      upstream  m.linuxidc.com {

              server  192.168.5.7:8080;

              server  192.168.5.7:8081;

              server  192.168.5.7:8082;

      }

      server

      {

              listen  80;

              server_name  www.linuxidc.com;

              location / {

                      proxy_pass        http://www.linuxidc.com;

                      proxy_set_header  Host            $host;

                      proxy_set_header  X-Real-IP        $remote_addr;

                      proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

              }

              log_format  www_linuxidc_com‘$remote_addr – $remote_user [$time_local] $request‘

‘”$status”$body_bytes_sent“$http_referer”‘

‘”$http_user_agent”“$http_x_forwarded_for”‘;

              access_log  /data1/logs/www.log  www_linuxidc_com;

      }

      server

      {

              listen  80;

              server_name  m.linuxidc.com;

              location / {

                      proxy_pass        http://m.linuxidc.com;

                      proxy_set_header  Host            $host;

                      proxy_set_header  X-Real-IP        $remote_addr;

                      proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

              }

              log_format  linuxidc_linuxidc_com‘$remote_addr – $remote_user [$time_local] $request‘

‘”$status”$body_bytes_sent“$http_referer”‘

‘”$http_user_agent”“$http_x_forwarded_for”‘;

access_log  /data1/logs/linuxidc.log  blog_linuxidc_com;

}

}

这里使用两个主要模块:

1. HTTP 负载平衡模块(HTTP 上游),解释了一些字段:

  • server:指定后端服务器的名称和一些参数。您可以使用域名,IP,端口或 Unix 套接字。如果指定为域名,则首先解析为 IP。
  • upstream:此字段设置一组服务器。该字段可以作为单独的实体放置在 proxy_pass 和 fastcgi_pass 指令中。它们可以是侦听不同端口的服务器,也可以是侦听 TCP 和 Unix 套接字的服务器。

2. HTTP 代理模块(HTTP Proxy)

该模块可以将请求转发到其他服务器。

  • proxy_pass:此命令设置代理服务器的地址和映射的 URI。该地址可以采用主机名或 IP 加端口号的形式。
  • proxy_set_header:此伪指令允许您将字段重新定义或添加到发送到代理服务器的请求标头中。该值可以是文本,变量或它们的组合。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2298字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中