Bind+Nginx实现负载均衡
Nginx实现负载均衡
1 基础环境
1.1 服务器列表
1.2 DHCP分配内外地址
1.3 端口转发策略
1.4 初始化信息
主机名称 | 内外IP | 系统 | 实现功能 |
Upstream | 172.16.16.10 | Centos 6.5 64位 | DNSserver+Nginx实现负载均衡 |
Nginx-20 | 172.16.16.20 | Centos 6.5 64位 | 后端nginx提供web服务 |
Nginx-30 | 172.16.16.30 | Centos 6.5 64位 | 后端nginx提供web服务 |
云路由器公网IP:103.21.118.91
初始化保证关闭iptables或开放相关端口,selinux处于禁用状态,内外各主机可以相互正常通讯。
1.5 相关知识
nginx 的 upstream目前支持5种方式的分配
1.5.1 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
1.5.2 weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
1.5.3 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
1.5.4 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
1.5.5 url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
2 配置DNS
2.1 安装软件包
这里只须安装最基本的bind、bind-libs、bind-utils三个组件即可
yum -y install bind bind-libs bind-utils
安装完成后启动服务
service named start
2.2 修改配置文件
named.conf主配置文件
vim /etc/named.conf
区域配置文件在/var/named 目录下
主机IP | 域名 |
172.16.16.10 | www.xuel.com |
172.16.16.20 | www20.xuel.com |
172.16.16.20 | www30.xuel.com |
正向区域配置文件
方向区域配置文件
更改三台主机DNS为172.16.16.10
重启dns服务重写加载配置文件
测试ping域名是否解析到对于的IP地址
使用nslookup测试反向解析是否成功
3 Nginx的安装与负载均衡的配置
3.1 安装Nginx
安装开发组环境工具与相关软件包
yum install -y pcre-devel openssl-devel yum groupinstall "Development tools" wget http://nginx.org/download/nginx-1.11.2.tar.gz tar zxvf nginx-1.11.2.tar.gz cd nginx-1.11.2 ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid make && make install
Nginx前端负载均衡的页面
Web20的页面
Web30的页面
Linux服务器测试页面可以正常访问
3.2 配置nginx负载均衡
核心配置如下
在本实验内我们定义的upstream 为xuel.com
后端两天web服务器nginx核心配置如下
测试访问云路由其公网IP,不断刷新,后端的web20与web30页面依次出现
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
调整SMTP会话连接时间解决邮件无法接收问题
最近一个朋友反映,他们公司在和欧洲某公司的邮件通讯过程,收到用户的投诉说:对方发过来的邮件,有时会有一两封收不到,但发送测试邮件,回复都没有问题!经过进一步了解,发过去的邮件,没有反映收不到,只是对方发过来的邮件,有时会收不到,但不是经常,只是偶尔发生!好吧,作为IT人员,最怕的就是偶发问题,无法重现故障,无法找到有价值的证据去排错!还好,在双方的共同努力下,最后也找到原因,调整相关参数,问题解决,下面将排错方法和过程分享给大家! 针对这个问题,首先让对方提供更有价值的信息,比如说:最近一次没收到的邮件,是谁、什么时候,发给谁的!还好,对方提供了欧洲某公司发过来的截图,有具体的发件人、收件人、发送时间,这下就好办了,马上查看SMTP LOG!当然,前提是你有开启详细的SMTP LOG记录(默认是没有开启的,条件允可的情况下,建议开启详细的SMTP LOG ,方便排错),如下: 首先通过对方提供的邮件地址,查询到对方的SMTP 会话IP为:213.150.22X.XXX,经过IP地位,此IP确实来自欧洲的奥地利: 在SMTP LOG中在查找此IP,发现确实有很多这个IP发过来的邮件,而且...
- 下一篇
Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
0.说明 使用Nginx可以配置基于域名的虚拟主机、基于端口的虚拟主机和基于端口的虚拟主机,比较常用的是基于域名的虚拟主机,这里要做的配置是基于域名的虚拟主机,并且是配置多个基于域名的虚拟主机。 关于Nginx配置文件的说明可以参考官方文档,同时也可以参考老男孩老师的书籍《跟老男孩学Linux运维:Web集群实战》,讲解得非常好! 1.实验环境 关于Nginx的详细安装配置,可以参考另一篇博文《在CentOS上编译安装Nginx+实验环境搭建+测试》。 本次实验的测试环境使用的宿主机操作系统为Windows 7,在Vmware虚拟机安装CentOS 6.5,说明如下: 宿主机操作系统Windows 7 虚拟机安装的操作系统CentOS 6.5 虚拟机操作系统上网方式NAT 而当使用NAT的方式进行上网时虚拟机、宿主机之间的网络连接关系可如下所示: 关于为什么网络拓扑结构是这样的,这里不展开说明,可以参考博主的另一篇博文《在实践中深入理解VMware虚拟机的上网模式NAT模式》,这篇文章深入地分析了VMware虚拟机使用NAT模式上网时的网络结构细节,相信看完这篇文章后,这里搭建Ng...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主