Nginx反向代理负载均衡群集实战

使用Nginx做负载均衡器,代理web服务器,用户请求的数据都指向Nginx负载均衡器,Nginx负责调度后端的Web服务器提供服务。

环境搭建及说明:

nginx负载均衡器LNMP环境或只安装nginx服务;两块网卡,192.168.11.30(模拟公网ip),192.168.20.30(内网)

web服务器LAMP环境1:ip地址为内网 192.168.20.10 apache为2.4版本

web服务器LAMP环境2:ip地址为内网 192.168.20.11

web服务器LAMP环境3:ip地址为内网 192.168.20.12

三台web服务器网站目录,程序保持一致。内网ip保持与nginx负载均衡器同一个网段。

1、只有一个站点的配置:

web1、web2、web3上操作:

httpd配置文件加入,允许网站目录访问;开启vhost虚拟配置文件。

# vi /etc/httpd/httpd.conf

Include /etc/httpd/extra/httpd-vhosts.conf

<Directory /data/www>

Options FollowSymLinks

AllowOverride none

Require all granted

</Directory>

虚拟主机配置

# vi /etc/httpd/extra/httpd-vhosts.conf

<VirtualHost *:80>

DocumentRoot "/data/www"

ServerName  www.linuxidc.com

</VirtualHost>

创建目录,写入index.html文件区分。

mkdir /data/www

在每一个web目录下写入index.html,内容分别为:This is LAMP 1 !;This is LAMP 2!;This is LAMP 3!

# curl 192.168.20.10

This is LAMP 1 !

# curl 192.168.20.11

This is LAMP 2!

# curl 192.168.20.12

This is LAMP 3!

nginx代理服务器操作:

写一个代理配置文件:

# cat /usr/local/nginx/conf/vhosts/nginxproxy.conf

upstream backend {

server 192.168.20.10:80 weight=1 max_fails=3 fail_timeout=30s;

server 192.168.20.11:80 weight=1 max_fails=3 fail_timeout=30s;

server 192.168.20.12:80 weight=1 max_fails=3 fail_timeout=30s;

}

server {

listen 80;

server_name www.linuxidc.com;

index index.html;

location / {

proxy_pass http://backend;

}

}

hosts添加本地ip地址解析,模拟公网ip对应域名;windows本地hosts也要增加解析;

# cat /etc/hosts

192.168.11.30 www.linuxidc.com

使用curl测试,默认rr轮询,访问一次web1,一次web2,一次web3

使用for循环执行,查看访问结果:

# for n in `seq 10`;do curl www.linuxidc.com;sleep 2;done

This is LAMP 2!

This is LAMP 1 !

This is LAMP 3!

This is LAMP 2!

This is LAMP 1 !

This is LAMP 3!

This is LAMP 2!

This is LAMP 1 !

This is LAMP 3!

This is LAMP 2!

2、多个站点的配置:

在web1,web2,web3,增加第2个站点 bbs.linuxidc.com

httpd配置文件加入,允许网站目录访问;

<Directory /data/bbs>

Options FollowSymLinks

AllowOverride none

Require all granted

</Directory>

虚拟主机配置增加

# vi /etc/httpd/extra/httpd-vhosts.conf

<VirtualHost *:80>

DocumentRoot "/data/bbs"

ServerName bbs.linuxidc.com

</VirtualHost>

创建目录,写入index.html文件区分。

mkdir /data/bbs

在每一个web目录下写入index.html,内容分别为:This is BBS.linuxidc.com 1!;This is BBS.linuxidc.com 2!;This is BBS.linuxidc.com 3!

nginx负载均衡服务器,虚拟主机增加server:

server {

listen 80;

server_name bbs.linuxidc.com;

index index.html;

location / {

proxy_pass http://backend;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

}

}

hosts添加本地ip地址解析,模拟公网ip对应域名;windows本地hosts也要增加解析;

# cat /etc/hosts

192.168.11.30 www.linuxidc.com bbs.linuxidc.com

使用for循环执行,查看访问结果:

# for n in `seq 10`;do curl bbs.linuxidc.com;sleep 2;done

This is BBS.linuxidc.com 1!

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 1!

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 1!

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 1!

3、upstream 下面增加ip_hash;

测试结果如下:保持用户连接,也会导致分配不均。

# for n in `seq 10`;do curl bbs.linuxidc.com;sleep 2;done

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

4、增加一个upstream,单独针对bbs的请求进行负载均衡,并设置权重,配置文件如下:

upstream backend {

server 192.168.20.10:80 weight=2 max_fails=3 fail_timeout=30s;

server 192.168.20.11:80 weight=1 max_fails=3 fail_timeout=30s;

}

upstream bbs {

server 192.168.20.11:80 weight=1 max_fails=3 fail_timeout=30s;

server 192.168.20.12:80 weight=2 max_fails=3 fail_timeout=30s;

}

server {

listen 80;

server_name www.linuxidc.com;

index index.html;

location / {

proxy_pass http://backend;

}

}

server {

listen 80;

server_name bbs.linuxidc.com;

index index.html;

location / {

proxy_pass http://bbs;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

}

}

实验结果如下

# for n in `seq 10`;do curl bbs.linuxidc.com;sleep 2;done

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 2!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 3!

This is BBS.linuxidc.com 2!

# for n in `seq 10`;do curl www.linuxidc.com;sleep 2;done

This is LAMP 2!

This is LAMP 1 !

This is LAMP 1 !

This is LAMP 2!

This is LAMP 1 !

This is LAMP 1 !

This is LAMP 2!

This is LAMP 1 !

This is LAMP 1 !

This is LAMP 2!

原创连接 http://www.linuxidc.com/Linux/2015-08/122111.htm

Nginx反向代理负载均衡群集实战相关推荐

  1. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  2. nginx 反向代理负载均衡 tomcat集群应用

    nginx 反向代理负载均衡 tomcat集群应用 环境介绍: 系统:centos5.8_64 192.168.0.201:nginx服务器 192.168.0.202:tomcat服务器 192.1 ...

  3. Nginx反向代理 负载均衡sky

    Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...

  4. Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链

    文章目录 1. Nginx简介 1.1 Nginx背景 1.2 Nginx的优点 1.3 Nginx的功能特性及常用功能 2.Nginx安装 2.1 下载上传解压 1.2 安装 3.nginx核心概念 ...

  5. Nginx 反向代理+负载均衡

    一.Nginx 的引入背景 ● 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户. 用户少, ...

  6. Nginx 反向代理 负载均衡 动静分离 高可用 原理

    1.Nginx简介 1.1 概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能 ...

  7. Tomcat集群+Nginx反向代理+负载均衡

    Tomcat集群 所谓tomcat集群,就是向外提供并行服务的多台机器,任何一台服务器宕机,其他服务器还可以代替它向外提供服务,从而不影响用户访问 为了提高tomcat集群的高可用性,还需要实现ngi ...

  8. Nginx——反向代理 负载均衡(无理论,案例实操)

    1.开篇 有关Nginx的下载安装.相关理论内容,这里就不再多说了,详情可以参考我的这几篇文章: https://szh-forever-young.blog.csdn.net/article/det ...

  9. Nginx反向代理负载均衡

    环境准备: 总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器. 机器信息 hostname IP 说明 lb01 192.168.1.19 nginx主负载均 ...

  10. nginx反向代理/负载均衡MySQL

    从Nginx1.9开始,官方提供了一个ngx_stream_core_module模块,该模块支持了TCP代理以及负载均衡功能. 要想启用该模块,在nginx编译时,指定编译参数 --with-str ...

最新文章

  1. CodeGen准备存储库
  2. 使用ISE创建IP核(以加法器的IP核建立为例)
  3. COM编程之四 引用计数
  4. Python 函数的可变参数、切片、迭代和列表生成式
  5. 数论分块练习([CF830 C]Bamboo Partition + [hdu 6395]Sequence )
  6. caesar加密_如何编写Caesar密码:基本加密简介
  7. delphi--csv,txt文本转换成excel .
  8. 如何将php文件通过后台导入,如何将通过url传到php后台的json在后台再次转换为json格式?...
  9. UVA11398 The Base-1 Number System【进制】
  10. Spring的IOC理解(转载)
  11. 推荐一款DataGridView的打印解决方案
  12. 四川传媒学院计算机应用技术分数,四川传媒学院历年各专业录取文化最低控制分数线一览表...
  13. carry函数在C语言中用法,动词carry用法小归纳
  14. 获取打开的记事本中的内容 - 回复 ymg1103 的问题
  15. ACdream - 1069 - 无耻的出题人
  16. CET-4 week9 阅读 写译
  17. 用C语言求奇数的几种方法
  18. FC总线基础知识(2)——光纤交换机
  19. OpenGL画三角形
  20. javascript--经典实例锦集

热门文章

  1. ASP.NET MVC2 视频教程下载地址
  2. 云笔记横向评测:印象笔记、有道云笔记、为知笔记、OneNote、Notion
  3. 网站分析实战总结(一)
  4. 2014完美世界校招笔试题及答案
  5. 调试经验——使用Matlab绘制f(x)=sin(x)/x的函数图形
  6. onlyoffice文档服务器加载慢,【onlyoffice中文指南】12-问题及排除
  7. Torrent 文件图文解析
  8. ubuntu18.0永久设置DNS
  9. ubuntu nvidia驱动更新
  10. Zblog模板调用标签情况说明