鞍山制作网站哪家好,工信部网站实名认证怎么做,深圳做网站de,wordpress会员权限目录 一#xff0c;反向代理
1#xff0c;环境准备
2#xff0c;配置代理服务器
3#xff0c;在物理机上一管理员身份打开文本编辑器#xff0c;编辑C:\Windows\System32\drivers\etc目录下的hosts文件
4#xff0c;访问测试
5#xff0c;查看日志#xff0c;并记…目录 一反向代理
1环境准备
2配置代理服务器
3在物理机上一管理员身份打开文本编辑器编辑C:\Windows\System32\drivers\etc目录下的hosts文件
4访问测试
5查看日志并记录客户端真实ip地址
二负载均衡
1upstream模块
2实现配置简单的负载均衡
3实现backup功能
4实现地址会话保持(hash) 一反向代理
1环境准备
硬件两台web服务器充当后端服务器一台代理服务器
web1:192.168.150.13
web2:192.168.150.14
代理192.168.150.12
配置用于测试的两台Web服务
cd /usr/share/nginx/html/
echo web test page,hostname -I. index.html
systemctl restart nginx
2配置代理服务器
cd /etc/ngnix/conf.d/
vim vhost.conf
server {listen 80;server_name web1.openlab.cn;location / {proxy_pass http://192.168.150.13;}
}server {listen 80;server_name web2.openlab.cn;location / {proxy_pass http://192.168.150.14;}
}
重启nginx
systemctl restart nginx
3在物理机上一管理员身份打开文本编辑器编辑C:\Windows\System32\drivers\etc目录下的hosts文件
192.168.150.12 web1.openlab.cn web2.openlab.cn
4访问测试
在浏览器输入请求web1.openlab.cn或web2.openlab.cn会被反向代理服务器转到后端Web服务器192.168.150.13或192.168.150.14中进行处理
5查看日志并记录客户端真实ip地址
tail /var/log/nginx/access.log
完成了反向代理WWW服务后发现一个问题节点服务器对应的WWW虚拟主机的访问日志的第一个 字段记录的并不是客户端的IP而是反向代理服务器的IP最后一个字段也是“-”
nginx负载均衡相关重要参数
proxy_pass http://server_pools通过proxy_pass功能把用户的清求转向到反向代理定义的upstream服务器池proxy_set_header Host $host 在代理向后端服务器发送的 http请求头中加入 host字段信息用于当后端 服务器配置有多个虚拟主机时可以识别代理的是哪个虚拟主机。这是节点 服务器多虚拟主机时的关键配置proxy_set_header X-Forwarded-For $remote_addr 在代理向后端服务器发送的 http请求头中加入 X-Forward-For字段信息 用于后端服务器程序、日志等接收记录真实用户的 IP ,而不是代理服务器的 IP这是反向代理时节点服务器获取用户真实 IP的必要功能配置
如何在日志文件记录客户端真实ip地址
添加 proxy_set_header X-Forwarded-For $remote_addr; //默认行首
添加 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //默认行尾
server {listen 80;server_name web1.openlab.cn;location / {proxy_pass http://192.168.150.13;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}server {listen 80;server_name web2.openlab.cn;location / {proxy_pass http://192.168.150.14;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
proxy_set_header Host $host//在代理向后端服务器发送的 http请求头中加入 host字段信息用于当后端 服务器配置有多个虚拟主机时可以识别代理的是哪个虚拟主机。这是节点 服务器多虚拟主机时的关键配置 二负载均衡
1upstream模块
server 10.0.10.8:80负载均衡后面的RS配置可以是IP或域名如果端口不写默认是80端口。 高并发场景下 IP可换成域名通过 DNS做负载均衡。weigth1代表服务器的权重默认值是1。权重数字越大表示接受的请求比例越大。max_fails3Nginx尝试连接后端主机失败的次数这个值是配合 proxy_next_upstream、fastcgi_next_upstream和 memcached_next_upstream 这三个参数来使用的。当nginx接收后端服务 器返回这三个参数定义的状态码时会将这个请求转发给正常工作的后端服 务器例如404、502、503、 Max_fails的默认值是1 ;企业场景下建议2-3 次。如京东1次蓝汛10次根据业务需求去配置fail_timeout10s在max_fails定义的失败次数后距离下次检查的间隔时间默认是10s ;如果 max_fails是5 ,它就检测5次如果5次都是502,那么它就会根据 fail_timeout的值等待10s再去检查还是只检查一次如果持续502,在不 重新加载 Nginx配置的情况下每隔10s都只检查一次。常规业务2~3秒比较 合理比如京东3秒蓝汛3秒可根据业务需求去配置。backup热备配置RS节点的高可用当前面激活的RS都失败后会自动启用热备RS 这标志看这个服务器作为备份服务器若主服务器全部宕机了就会向它转 发请求。注意当负载调度算法为ip_hash时后端服务器在负载均衡调度中 的状态不能是weight和backup。down这标志着服务器永远不可用这个参数可配合ip_hash使用类似与注释。 2实现配置简单的负载均衡
模块说明
ngx_http_proxy_moduleproxy 代理模块 用于把请求后拋给服务器节点或 upstream 服务器池
ngx_http_upstream_module负载均衡模块 可以实现网站的负载均衡功能及节点的健康检査
upstream web_pools {server 192.168.150.13 weight2;server 192.168.150.14 weight1;
}server {listen 80;server_name web1.openlab.cn;location / {proxy_pass http://web_pools;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
去本地/etc/hosts文件添加域名解析并重启nginx服务
192.168.150.12 web1.openlab.cn
客户端测试for ((i1;i10;i)); do curl web1.openlab.cn; done
3实现backup功能
upstream web_pools {server 192.168.150.13 weight2;server 192.168.150.14 weight1;server 192.168.150.11 backup;
}server {listen 80;server_name web1.openlab.cn;location / {proxy_pass http://web_pools;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
4实现地址会话保持(hash)
upstream web_pools {ip_hashserver 192.168.150.13 weight2;server 192.168.150.14 weight1;#server 192.168.150.11 backup;
}server {listen 80;server_name web1.openlab.cn;location / {proxy_pass http://web_pools;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}