(本文把所有centos的系统命令用斜体加黑表示,以便各位阅读)
反向代理一般都是跟负载均衡搭配使用的,而负载均衡也分为硬件和软件两种,nginx作为一款服务器硬件,虽然比不上硬件的负载均衡那么牛,但是在软件的负载均衡里也已经非常强大了。
nginx作为一个“代理服务器”,能起到阀门的作用,而且这个阀门可以各种调整,而这些调整就是负载均衡的配置。
首先,先打开浏览器,输入183.232.41.1,回车之后出现的是京东的界面,如果有京东的账号,我们可以输入一下,然后关闭窗口。再在新的窗口里输入106.39.178.1,发现打开的仍然是京东的界面,而且账号会被直接的保存。
于是可见京东的域名其实绑定了至少2个IP,当我们在地址栏里输入www.jd.com的时候,其实就有一个“负载均衡”的软件把用户的机器引导去里当前不是很紧张的服务器。而这些子服务器还同时都保存了账号,就不会发生每一次链接不同的子服务器还要重新输入一次账号密码的情况。
本机的nginx.conf处于默认位置,nginx.conf是主配置文件,如果它塌了,那么基本整个nginx服务都会塌方,所以推荐touch一个新的配置文件,然后vim一下。于是在/usr/local/nginx/conf的目录下#touch fzjh.conf,然后vim了它,如图加入内容:
保存退出之后,启动nginx服务,这时候打开浏览器,输入127.0.0.1 or localhost,应该是正常的,而输入127.0.0.1:8080的时候,就会出现111.13.100.92等那三个网站的内容。
upstream默认是“轮询模式”,也就是说第一次是111.13.100.92,刷新就应该是106.39.179.1,再刷新就是192.168.1.15,如果想要其中111.13.100.92网站出现的几率多一点,那么就把第一行改成"server 111.13.100.92 weight=2",默认的每一个网站的权重(weight)默认为1,现在改成2,那么意味着把历史纪录和cookies清除了之后,111.13.100.92出现的几率增加了一倍,即点击四下“刷新”,应该有两下是111.13.100.92,其他两个网站各出现一次。
如果需要绑定用户端与子服务器,需要先#killall -9 nginx把nginx的进程杀死,然后将upstream模块改成:
upstream myprofie {
ip_hash;
server 111.13.100.92;
server 106.39.78.1;
server 192.168.1.15;
}
保存退出,然后以这个.conf文件作为配置文件启动nginx,这样就启动了ip_hash功能,这样的话,在清除缓存的前提下,如果第一次连接的服务器是111.13.100.92,那么以后只要ip不变,无论怎么刷新,都是111.13.100.92这个网页,除非这个服务器崩溃。