這篇文章主要介紹了詳解Nginx 動態DNS 反向代理的幾種寫法,詳細的介紹了Nginx 動態DNS 反向代理的4種方法,非常具有實用價值,需要的朋友可以參考下
這篇文章的更新拖了半個月,真的是感動中國了。
Nginx 預設會快取 DNS,大家都知道,如果要做反向代理,其實是存取的目標 ip,所以一旦快取了目標 ip 就會非常麻煩。
☕字的四種寫法遠近聞名,萬萬沒想到,Nginx 動態DNS 反向代理也有N 種玩法,這主要取決於你用的Nginx 版本,當然運維告訴我,最好是不要用動態DNS,但是基於業務需要,咱們也沒有辦法。
徠字的第一種寫法:Nginx
在Nginx 中透過設定變數可以曲線救國,當然有缺點,透過變數的方法沒有辦法進行負載平衡,非常麻煩,當然如果你只有單機(在實際業務場景中幾乎不存在),還是可以一試的:
server { ... resolver 127.0.0.1; set $backend "http://dynamic.example.com:80"; proxy_pass $backend; ... }
第二種寫法:Nginx Plus
當然Nginx 不太好用,增強版的Plus 就提供了一個更棒的寫法,它支援在server 中寫入:
#server { ... resolver 127.0.0.1 valid=30s; proxy_pass http://upstream-sites; ... }
第三種寫法:Tengine
#Tengine 是淘寶家的魔改Nginx,其實我挺煩的,因為最開始我不知道我們用的是Tengine,導致配置沒有什麼卵用,但是Tengine 對於動態網域解析卻支援的非常不錯,官方文件寫得也很清楚。
upstream backend { dynamic_resolve fallback=stale fail_timeout=30s; server a.com; server b.com; } server { ... location / { proxy_pass http://backend; } }
其他
#當然,也可以使用Lua 腳本來實現,或是別人的模組,但考慮到怕鼓搗壞,我還是不亂折騰了,所以沒有採取這種方案。
以上就是本篇文章的全部內容了,更多相關內容請關注PHP中文網。
相關推薦:
以上是Nginx 動態DNS反向代理人的幾種寫法的詳細內容。更多資訊請關注PHP中文網其他相關文章!