标签:repo mod 部署 反向代理 调度算法 conf win 试题 yum源
上面VM克隆一台一台主机
lb01 192.168.1.4
lb02 192.168.1.5
LNMP01 192.168.1.8
LNMP02 192.168.1.10
四台都要安装nginx
yum官方源安装方法:
第一个历程: 更新nginx官方yum源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
第二个历程: yum安装nginx软件
yum install -y nginx
第三个历程: 启动nginx服务,检查服务是否安装正确
systemctl start nginx
systemctl enable nginx
测试访问nginx服务
LNMP01 02 安装PHP
见LNMP安装
03. (反向代理)负载均衡的概念说明
什么是集群?
完成相同任务或工作的一组服务器 (web01 web02 web03 -- web集群)
什么是负载均衡?
1) 实现用户访问请求进行调度分配
2) 实现用户访问压力分担
什么是反向代理?
反向代理: 外网 ---> (eth0外网) 代理服务器 (eth1内网) ---> 公司网站服务器web(内网)
外网用户(客户端) --- 代理服务器 (服务端)
代理服务器(客户端) --- web服务器(服务端)
正向代理: 内网(局域网主机) --- (内网)代理服务器(外网) --- 互联网 --- web服务器(日本)
04. 准备负载均衡的环境
集群服务器部署:
PS: 集群中每天服务器的配置一模一样
企业中:
01. 先部署好一台LNMP服务器,上传代码信息
02. 进行访问测试
03. 批量部署多台web服务器
04. 将nginx配置文件进行分发
05. 将站点目录分发给所有主机
教学中:
01. 将web01作为模板主机克隆
sed -i ‘s#\.7#.8#g‘ /etc/sysconfig/network-scripts/ifcfg-eth[01]
hostnamectl set-hostname web02
利用手动方式实现负载均衡:
修改hosts主机地址和域名映射文件
负载均衡服务器部署:
第一个历程: 安装部署nginx软件
....
[root@lb01 ~]# cd /etc/nginx/
[root@lb01 nginx]# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
[root@lb01 nginx]# cp nginx.conf{,.bak}
[root@lb01 nginx]# grep -Ev ‘^#|$‘ nginx.conf
[root@lb01 nginx]# grep -Ev ‘^$|#‘ 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;
}
[root@lb01 nginx]# grep -Ev ‘^$|#‘ nginx.conf.bak > nginx.conf
[root@lb01 nginx]#
[root@lb01 nginx]# cd conf.d/
[root@lb01 conf.d]# grep -Ev ‘^$|#‘ default.conf > lb.conf
[root@lb01 conf.d]#
第二个历程: 编写nginx负载服务配置文件
ngx_http_upstream_module --- upstream 负载均衡 OK
ngx_http_proxy_module --- proxy_pass 反向代理
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
}
}
第三个历程: 实现负载功能测试
搭建集群测试环境:
for name in www bbs blog;do echo "$name 10.0.0.7">/html/$name/wenwen.html;done
for name in www bbs blog;do echo "$name 10.0.0.8">/html/$name/wenwen.html;done
for name in www bbs blog;do echo "$name 10.0.0.9">/html/$name/wenwen.html;done
修改windows解析文件
10.0.0.5 www.oldboy.com blog.oldboy.com bbs.oldboy.com
负载均衡访问网站异常排错思路:
第一步: 负载均衡 测试后端web节点服务器是否能够正常访问
[root@lb01 conf.d]# curl -H host:www.oldboy.com 10.0.0.7/wenwen.html
www 10.0.0.7
[root@lb01 conf.d]# curl -H host:www.oldboy.com 10.0.0.8/wenwen.html
www 10.0.0.8
[root@lb01 conf.d]# curl -H host:www.oldboy.com 10.0.0.9/wenwen.html
www 10.0.0.9
第二步: 负载均衡 利用curl命令访问负载均衡服务器
查看两个配置文件
第三步: 打开一个xshell连接 ping www.oldboy.com
第四步: 配置文件编写不正确
05. 负载均衡配置模块详细说明
ngx_http_upstream_module --- upstream
实现不同调度功能
1. 轮询分配请求(平均)
2. 权重分配请求(能力越强责任越重)
upstream oldboy {
server 10.0.0.7:80 weight=3;
server 10.0.0.8:80 weight=2;
server 10.0.0.9:80 weight=1;
}
3. 实现热备功能(备胎功能)
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 backup;
}
4. 定义最大失败次数 健康检查参数
max_fails=5
5. 定义失败之后重发的间隔时间 健康检查参数
fail_timeout=10s 会给失败的服务器一次机会
实现不同调度算法
1. rr 轮询调度算法
2. wrr 权重调度算法
3. ip_hash 算法 (出现反复登录的时候)
4. least_conn 根据服务器连接数分配资源
ngx_http_proxy_module --- proxy_pass
01. 访问不同的网站地址,不能显示不同的网站页面 (面试题)
proxy_set_header Host $host;
02. 访问网站用户地址信息无法进行分析统计 (面试题)
proxy_set_header X-Forwarded-For $remote_addr;
03. 访问负载均衡会出现错误页面,影响用户体验
proxy_next_upstream error timeout http_404 http_502 http_403;
作业:
01. 总结Module ngx_http_proxy_module
02. 总结Module ngx_http_upstream_module
03. 高可用服务 keepalived
提前克隆好一台新的lb02主机 lb01+lb02 高可用集群(HA)
标签:repo mod 部署 反向代理 调度算法 conf win 试题 yum源
原文地址:https://www.cnblogs.com/linux985/p/11779124.html