搭建Nginx负载均衡服务文档一
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建Nginx负载均衡服务文档一相关的知识,希望对你有一定的参考价值。
搭建负载均衡服务的实际需求:
1.把单台服务器无法承受的大规模并发访问或数据流量分担到多台节点设备上,分别进行处理,减少用户等待响应的时间,提升用户体验。
2.单个重负载的运算分担到多台节点设备上做并行处理,每个节点处理结束后,将结果汇总,返回给用户。
3.7*24小时的服务保证,任意一个或多个有限后面节点设备宕机,不能影响业务。
实现nginx负载均衡需要两个组件:
l Ngx_http_proxy_module,用于把请求后抛给服务器节点或upstream服务器池;
l Ngx_http_upstream_module,可以实现网站的负载均衡功能及节点的健康检查。
硬件环境准备:
主机 | IP | 说明 |
主负载均衡1 | 192.168.159.128 | Nginx主负载均衡器 |
主负载均衡2 | 192.168.159.128 | Nginx辅负载均衡器 |
Web1 | 192.168.159.130 | Web1服务器 |
Web2 | 192.168.159.131 | Web2服务器 |
软件环境:
操作系统:CentOS 6.8
虚拟机:VM
Web软件:nginx-1.10.2.tar.gz
终端软件:SecureCRT
操作步骤:
通过终端软件连接4台主机,同时进行批处理操作,在整个实验当中还有一个主负载均衡2还没有实现,下次完成这个子任务。
[[email protected] tools]# yum install openssl openssl-devel pcre pcre-devel -y
[[email protected] tools]# wgethttp://nginx.org/download/nginx-1.10.2.tar.gz
[[email protected] tools]#useradd nginx -s /sbin/nolobin -M
[[email protected] tools]#tar xf nginx-1.10.2.tar.gz
[[email protected] tools]# cd nginx-1.10.2
[[email protected] nginx-1.10.2]#./configure \
--user=nginx \
--group=nginx \
--prefix=/application/nginx-1.10.2\
--with-http_stub_status_module \
--with-http_ssl_module
[[email protected] nginx-1.10.2]#make&& make install
配置Nginx主负载均衡器:192.168.159.128
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
upstream www_server_pools{
server192.168.159.130:80 weight=1; #定义130,131两个web 节点
server192.168.159.131:80 weight=1;
}
server { #定义代理的负载均衡域名虚拟主机
listen 80;
server_name http://www.sky9896.com/;
access_log logs/host.access.log main;
location/ {
proxy_pass http://www_server_pools; #请求发送WWW_server_pools里面的节点
proxy_set_headerHost $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
Nginx web1和web2的配置相同:192.168.159.130 192.168.159.131
http {
include mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local]"$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;
access_log logs/access_www.log main;
keepalive_timeout 65;
server {
listen 80;
server_name www.sky9896.com;
location/ {
root html/www;
index index.html index.htm;
}
测试:web1=web2的配置操作是一样的
[[email protected]~]# mkdir /application/nginx/html/www
[[email protected] html]# ll
drwxr-xr-x. 2 root root 4096 Dec 29 19:31 www
[[email protected] html]# cd www
[[email protected] www]# ll
-rw-r--r--. 1 root root 21 Dec 29 19:31 index.html
[[email protected] www]# cat index.html #web1站点
192.168.159.130 www
[[email protected] www]# cat index.html #web2站点
192.168.159.131 www
[[email protected] html]# /application/nginx/sbin/nginx-t
nginx: the configuration file /application/nginx-1.10.2/conf/nginx.confsyntax is ok
nginx: configuration file /application/nginx-1.10.2/conf/nginx.conftest is successful
[[email protected] html]# /application/nginx/sbin/nginx
[[email protected] www]# vi /etc/hosts #做好192.168.159.130本地hosts解析
192.168.159.130 www.sky9896.com
[[email protected] www]#curl www.sky9896.com #测试web1
[[email protected] www]# vi /etc/hosts #做好192.168.159.131本地hosts解析
192.168.159.130 www
192.168.159.131 www.sky9896.com
[[email protected] www]# curl www.sky9896.com #测试web2
192.168.159.131 www
主负载均衡器:192.168.159.128作为客户端的测试结果如下:
[[email protected] ~]# cat /etc/hosts #hosts解析
192.168.159.128 www.sky9896.com
[[email protected] ~]# curl www.sky9896.com
192.168.159.131 www
[[email protected] ~]# curl www.sky9896.com
192.168.159.130 www
测试小结:
1.如果是关掉任一个web节点,网站业务不受影响,访问请求都会定位到其他的某个节点上。
2.如果所有web节点都宕掉了,此时,会出现如下情况:
[[email protected] ~]# curl www.sky9896.com
<html>
<head><title>502 BadGateway</title></head>
<body bgcolor="white">
<center><h1>502 BadGateway</h1></center>
<hr><center>nginx/1.10.2</center>
</body>
</html>
本文出自 “sky9890” 博客,请务必保留此出处http://sky9896.blog.51cto.com/2330653/1887300
以上是关于搭建Nginx负载均衡服务文档一的主要内容,如果未能解决你的问题,请参考以下文章