之前说了,nginx配置与安装,https服务的配置。接下来再聊聊nginx反向代理的配置。为了方便起见这里,我们的负载均衡服务器集群假设为两个节点,刚好用到之前配置的nginx服务(被代理的服务器也可以使用别的服务,比如httpd等)。
1、使用ssh连接三台服务器
ssh root@192.168.3.222
ssh root@192.168.3.223
ssh root@192.168.3.224
2、接下来我们打算使用192.168.3.222作为反向代理,其他两个作为上游服务器。虽然实际应用的上游服务器应该展示内容相同,但是,为了好区分起见,我们可以修改下两个上流服务器展示的内容,使得我们知道究竟该代理服务器在此次访问代理的哪台服务器的内容。
首先,使用cd命令分别切换到/usr/local/nginx/html
然后,假设将两个文件的内容分别改为如下内容:
hello, I am the 223 server!
hello, I am the 224 server!
最后,分别使用nginx命令启动两个上游服务器
3、修改我们反向代理服务器192.168.3.222的配置文件的内容。
使用cd命令切换至/usr/local/nginx/conf,修改nginx.conf的内容,在http的模块里加入如下的内容:
upstream servers_name {
server 192.168.3.223 weight=1;
server 192.168.3.224 weight=2;
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://servers_name;
}
}
保存退出之后,使用nginx -t命令测试下看是否输出如下信息:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
4、为了使得代理服务器的域名 www.test.com被识别,我们还需要修改/etc下的hosts文件,在文件中添加
192.168.3.222 www.test.com
5、我们可以在真机上的firefox输入www.test.com测试我们配置的代理服务器。
总结一下:
1、注意是否关闭了防火墙,可用iptables命令进行关闭火墙;
2、upstream后面跟自己起的服务器集群名称,但是必须和后面proxy_pass后面的集群名称保持一致;
3、由于这里只代理了两个服务器,所以upstream只写了两个,可根据需要进行扩充;
4、由于这里使用的http协议,所以使用80端口。
5、由于权重分别为1、2,所以223会被代理一次,224会被代理两次(可以通过在firefox的测试一下)。
至此,关于nginx的反向代理服务的配置就结束了。