nginx负载均衡访问报404错误

问题描述

一个负载均衡服务器,两个web服务器,负载均衡后,访问web服务两台服务器会相互去对方的目录拿数据

负载均衡配置

 upstream nginx {
        server 192.168.22.17;
        server 192.168.22.18;
    }
 server {
        listen       80;
        server_name  www.b.com;
        location / {
        proxy_pass http://nginx;
        }

web1配置

server {
        listen       80;
        server_name  192.168.22.17;
        location / {
            root   html;
            index  index.html index.htm;
        }
}

web1错误日志

[error] 3525#0: *1652 open() "/usr/local/nginx/html/img/1.jpg" failed (2: No such file or directory), client: 192.168.22.19, server: 192.168.22.17, request: "GET /img/jya9pxac_w180_h180.png HTTP/1.0", host: "nginx", referrer: "http://www.b.com/"
/usr/local/nginx/html/img    #是自己的路径
1.jpg    #是web2的资源

为什么两台服务器会在自己的路径找对方的资源?

负载均衡到后面机器,你可以理解为就是 访问转发到你设置的服务器,那当然是你所设置的机器提供服务啊。。。这个是原理,详细可去查查学习一下。
还有,你的 upstream 配置,建议,写上端口。

web1跟web2上面的资源不同?既然做负载均衡,就要确保两台机上面的资源一致