nginx配置的大坑proxyPass

Posted axman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置的大坑proxyPass相关的知识,希望对你有一定的参考价值。

很多情况下我们都是


proxyPass http://mydomain/path/xxxx

但是这样会存在一个问题,这个mydomain后面的实际机器ip或vip发生变化时,nginx仍然会向原来的ip/vip转发,除非重启nginx。

正确的做法是:

 set $host  mydomain

proxyPass http://$host/path/xxxx


这样在mydomain对应的ip/vip发生变化时,nginx虽然会有几次缓存,但很快会解析到新的ip/vip而不用重启。


原理相当于配置文件在启动时进行编译,proxyPass http://mydomain/path/xxxx这种方式是编译成静态的,直接替换成它解析到的ip/vip,只有重新启动时才会重新解析。

set $host  mydomain

proxyPass http://$host/path/xxxx这种方式是动态变量,每次使用都是对变量进行解析(『每次』实际上可能有缓存,但更新很快)。


以上是关于nginx配置的大坑proxyPass的主要内容,如果未能解决你的问题,请参考以下文章

Nginx代理proxy pass配置去除前缀

Nginx proxy pass简单用法、负载均衡

Nginx配置proxy_pass末尾有参数与无参数的区别

ershoumall大坑处理-nginx

ershoumall大坑处理-nginx

proxy_pass使用内置变量报错