nginx 负载均衡 文件不存在去找另一台服务器

引言

今天给我出了个难题,我们这儿一共有两台应用服务器,现在要做负载均衡,但是每台服务器都有一个后端应用,当在服务器A生成了一个文件,下载的话,如果nginx轮询到了B,那么一定会下载失败的。此时可以通过nginx的try_files 来解决这个问题。画了一个草图,是这样的。
image.png

配置nginx

server{
    listen 80 default_server;
    server_name localhost;
    location / {
        root /usr/www/html;
        index index.html;
        try_files $uri $uri/index.html @s12;  # 访问uri,如果不存在,访问uri/index.html 如果还没有就代理s12
    }
    location @s12 { # 这儿只是一个简单的代理
        add_header Cache-Control no-cache;
        proxy_intercept_errors on;
        proxy_pass http://14.**.**.12;
    }
}

同理,在另一台服务器上的nginx也要配置,只是其中的地址改成刚刚的那台服务器。
以文章开头的那张图来说,如果用户访问的是server-2的话,也是相同效果。

结语

nginx 真强大

评论 0

还没有评论,来说点什么吧。

提交后需要审核才会公开。