前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Nginx实现HTTP负载均衡

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

作者头像
星哥玩云
发布2022-08-13 11:25:38
5690
发布2022-08-13 11:25:38
举报
文章被收录于专栏:开源部署

以下是用于配置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:此伪指令允许您将字段重新定义或添加到发送到代理服务器的请求标头中。 该值可以是文本,变量或它们的组合。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档