环境:4台设备
1.client:192.168.25.129
2.proxy:192.168.25.130
192.168.10.199
3.web1:192.168.10.200
4.web2:192.168.10.201
Nginx反向代理
功能:
后端Web服务器两台,可以使用httpd实现
Nginx采用轮询的方式调用后端Web服务器
两台Web服务器的权重要求设置为不同的值
最大失败次数为1,失败超时时间为30秒
web1:做一个网页
yum -y install httpd
echo “192.168.10.200” > /var/www/html/index.html
systemctl restart httpd
web2:做一个网页
yum -y install httpd
echo “192.168.10.201” > /var/www/html/index.html
systemctl restart httpd
proxy源码安装nginx
vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#upstream写在http下面,server上面这个位置
#使用upstream定义后端服务器集群,集群名称任意(如webservers)
#使用server定义集群中的具体服务器和端口
upstream webservers {
server 192.168.10.200:80; ###:80可以写也可以不写
server 192.168.10.201;
}
server {
listen 80;
server_name localhost;
location / {
#通过proxy_pass将用户的请求转发给webservers集群,proxy_pass写在root下面也可以,它的优先级最高
proxy_pass http://webservers;
root html;
index index.html index.htm;
}
----------1.配置upstream服务器集群池属性
weight、max_fails、fail_timeout、down
server 192.168.10.200 weight=2; ///默认weight=1,200访问两次,201访问一次
server 192.168.10.200 max_fails=1 fail_timeout=20; ///max_fails连接次数,1次连接不上判定为坏,fail_timeout=20,20秒之内不连接,即使修好了,再20秒以内也不连接
server 192.168.10.200 down;//此设备down机,不做集群,什么时候修好什么时候开启
----------2.配置upstream服务器集群的调度算法
相同客户端访问相同服务器
#通过ip_hash设置调度规则为:相同客户端访问相同服务器
upstream webservers {
ip_hash;
server 192.168.10.200 max_fails=1 fail_timeout=20;
server 192.168.10.201;
}
Nginx的TCP/UDP调度器
功能:
后端SSH服务器两台
Nginx编译安装时需要使用–with-stream,开启ngx_stream_core_module模块
Nginx采用轮询的方式调用后端SSH服务器
准备环境:重新编译Nginx,加上–with-stream模块,要求:Nginx版本1.9以上
步骤一:部署支持4层TCP/UDP代理的Nginx服务器
nginx -s stop
rm -rf /usr/local/nginx/ //生产环境不建议这个做
./configure --user=nginx --with-http_ssl_module --with-stream
93 make && make install
步骤二:配置Nginx服务器,添加服务器池,实现TCP/UDP反向代理功能
stream {
upstream sshserver {
server 192.168.10.200:22;
server 192.168.10.201:22;
}
server {
listen 12345;//监听12345,企业中应该是22,因为实验过程中,22端口在使用
proxy_pass sshserver;
}
}
//以上内容写在http{上面,中间出了小插曲,Nginx无法重启,无法关闭,killall nginx杀死进程,再重启
http {
验证:
ssh 192.168.25.130(直接到proxy这个设备上了)
ssh 192.168.25.130 -p 12345(加上指定端口后,远程到了web1中)