问题描述
做 node 同构时,现在想实现让服务器挂调的时候,直接让 nginx 返回静态资源,请问该如何配置 nginx 呢?
比如访问 a.xx.com/test.html, 当 node 服务器挂掉后,直接让nginx返回test.html的静态文件,这个有办法实现吗?
问题解答
回答1:使用proxy_intercept_errors + error_page 可以解决您的问题。error_page 504 /$uri504即为proxy出现超时的情况
回答2:我们原来在做发布的时候遇到过你的这个问题,当我们在做发布的时候需要停掉服务但是希望有个友好的页面提示用户我们正在服务请稍后再试。我们利用nginx的负载均衡,启两个服务,10.0.0.2跑得是提示用户我们正在发版本的提示用户用的服务
upstream my_server { server 10.0.0.1:8080 weight=10; server 10.0.0.2:8080 backup; //当其它服务器挂掉的时候才会负载到这台 keepalive 2000;}server { listen 80; server_name www.test.com; location / {proxy_pass http://my_server; }}
不过我们现在已经在利用slb做G/B发不了,发布期间服务不会停。希望能帮到你,nginx我也不是很精通,希望有更巧妙的方法解决这个问题,其实如果自己写Lua脚本的话就能做一些定制化的功能了,要考虑下你们的团队和时间,觉得可以做的话其实是最好的。