本文共 3595 字,大约阅读时间需要 11 分钟。
负载均衡服务概念
作用: 1)实现并发访问压力分担 2)实现访问调度处理 根据用户终端不同进行调度访问 /根据服务器性能实现方式:
软件方式实现 nginx lvs haproxy 硬件方式实现 F5 A10 负载均衡名词解释:
负载均衡:实现并发访问压力分担/实现访问调度处理反向代代理:外网用户想访问内网主机时,需要借助反向代理实现
外网用户请求----->反向代理服务器---->公司内部服务器(私网地址)
正向代理:内网用户想访问外网网站时,需要借助正向代理实现
内部用户请求—>正向代理服务器------>互联网外网环境
网站集群概念:完成相同工作一群服务器 web01 web02 web03(web集群)
1
部署相同服务软件是相同(nginx) 2
部署配置文件是相同(nginx配置) 负载均衡节点:后端处理真正访问页面web服务器
负载均衡实现原理
用户发送请求---->负载均衡服务器--->web服务器客户端 服务端 根据用户请求信息---->web服务器 客户端 服务端 负载均衡服务器 <----web服务器用户接受响应 <-------负载均衡服务器
这个过程:反向代理负载均衡过程
负载均衡实现过程
环境准备: lb01 10.0.0.5 nginx-1.16.1 web01 10.0.0.7 nginx-1.16.1 web02 10.0.0.8 nginx-1.16.1 web03 10.0.0.9 nginx-1.16.1第一个历程:编写web服务配置文件信息
(编写好一个web服务的配置文件,复制到其他两个服务端就好) www.confserver { listen 80;server_name www.oldboy.com;location / { root /html/www; index index.html; }}
将nginx主配置文件去除空行和注释后再操作,将include /etc/nginx/conf.d/www.conf; 原本的.*改为www.conf;
scp -rp /etc/nginx/nginx.conf 172.16.1.8:/etc/nginx/ scp -rp /etc/nginx/nginx.conf 172.16.1.9:/etc/nginx/ scp -rp /etc/nginx/conf.d/www.conf 172.16.1.8:/etc/nginx/conf.d/ scp -rp /etc/nginx/conf.d/www.conf 172.16.1.9:/etc/nginx/conf.d/
第二个历程:编写配置web服务站点目录信息
并配置index.html首页配置文件web01站点目录:mkdir -p /html/www && echo web01-info >/html/www/index.html web02站点目录:mkdir -p /html/www && echo web02-info >/html/www/index.html web03站点目录:mkdir -p /html/www && echo web03-info >/html/www/index.html
提示
:注意修改站点目录的属主属组为nginx用户方便nginx进程调用。
提示
:最好再查看一下端口信息,默认的80端口是否开启。 第四个历程:利用负载均衡服务器测试每个页面是否能够正常访问
#curl -H host:www.oldboy.com 172.16.1.7 web01-info # curl -H host:www.oldboy.com 172.16.1.8 web02-info # curl -H host:www.oldboy.com 172.16.1.9 web03-info
第五个历程:编写负载均衡服务配置文件(主配置文件)
grep -Ev "#|^$" /etc/nginx/nginx.conf.bak >/etc/nginx/nginx.conf
这个服务器上只配置主配置文件
,不创建子配置文件
[root@ls01 conf.d]# cat /etc/nginx/nginx.conf
user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; #include /etc/nginx/conf.d/*.conf; upstream oldboy { server 10.0.0.7:80; server 10.0.0.8:80; server 10.0.0.41:80; } server { listen 80; server_name localhost; location / { proxy_pass http://oldboy; } }}
提示
:注意负载均衡模块使用的地方是http区域内。
配置完毕重启服务。
提示:在PC端测试时,需要配置本地dns解析,解析内容如下:10.0.0.5 www.oldboy.com
负载均衡服务器上注释主配置文件中的include信息
#include /etc/nginx/conf.d/*.conf;
web服务器上修改配置文件信息为
include /etc/nginx/conf.d/www.conf;
第六个历程:进行域名解析访问测试
本地解析10.0.0.5 www.oldboy.com
异常情况:
网站页面不能正常显示 不能实现正常的负载过程(没有轮询)排错思路:
01 利用负载均衡手动访问不同网站服务器,显示正常页面 curl -H host:www.oldboy.com 10.0.0.7 curl -H host:www.oldboy.com 10.0.0.8 curl -H host:www.oldboy.com 10.0.0.9 02 负载均衡配置文件信息是否正确:测试网站页面 03检查dns解析是否正确 ping www.oldboy.com ---->10.0.0.5注意:在负载服务器的主配置文件中一定是注释include的,在其他web服务器上的主配置文件中一定是将include修改为www.conf
我出现了一个特殊情况就是
进程出现了,但是端口没有出现。这是使用curl命令是报错: [root@ls01 ~]# curl www.oldboy.com curl: (7) Failed connect to www.oldboy.com:80; Connection refused在百度没有找到太多有价值的博客,重启几次nginx服务,查看端口以及进程信息,如果端口出现了,那么使用curl命令就不再报错。
转载地址:https://liushiya.blog.csdn.net/article/details/104318321 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!