1.选择两台

一台做代理(192.168.121.13)

二台做服务器 (192.168.121.9)

             (192.168.121.13)

2.在nginx.conf

http {

upstream loadbance {

 server 192.168.121.9 weight=1 max_fails=2 fail_timeout=20s;

 server 192.168.121.131 weight=1 max_fails=2 fail_timeout=20s;

}

server {

   listen     80;

    server_name localhost;

 location / {

  proxy_pass  http://loadbance;

  proxy_set_header   X-Real-IP     $remote_addr;


4.在浏览器下输入192.168.121.13/index.html

看到192.168.121.9zhm2.test.com

192.168.121.131zhm3.test.com

那反向代理就成功了。

然后去各个服务器 tail -f /usr/local/nginx/logs/access.log

会看到真正的客户端机器ip,而不是代理服务器的ip。


5.在把其中服务器 9  service nginx stop

在去192.168.121.13去刷页面,就只会一直刷新 13

重新再把nginx启动起来,又可以交替刷新,可以用来验证服务器是否健康开启。


6.如果在upstream loadbance {

       ip_hash

       server 192.168.121.9 weight=1 max_fails=2 fail_timeout=20s;

       server 192.168.121.131 weight=1 max_fails=2 fail_timeout=20s;

再去刷页面,会不停的刷新 9 这台服务器的页面。

  如果你把131 服务器的权重 改成2,那么ip_hash就会一直刷新131这台。

因为权重越大 几率越高。


7.页面缓存

先创建个/usr/local/nginx/cache/loadbance 放置缓存目录

在nginx.conf

proxy_cache_path  /usr/local/nginx/cache/loadbance  levels=1:2  keys_zone=load
bance:20m  max_size=1g;

  server {


add_header X-Via  $server_addr;
       add_header X-Cache  $upstream_cache_status;


location / {

   
     proxy_cache_valid 200 10m;

然后刷新页面,在去/usr/local/nginx/cache/loadbance查看,会有缓存。

去谷歌界面查看
nginx 反向代理 负载均衡 页面缓存_listen

缓存就成功了。