詳解Nginx 動(dòng)態(tài) DNS 反向代理的幾種寫法
這篇文章的更新拖了半個(gè)月,真的是感動(dòng)中國(guó)了。
Nginx 默認(rèn)會(huì)緩存 DNS,大家都知道,如果做反向代理,其實(shí)是訪問(wèn)的目標(biāo) ip,所以一旦緩存了目標(biāo) ip 就會(huì)非常麻煩。
茴字的四種寫法遠(yuǎn)近聞名,萬(wàn)萬(wàn)沒(méi)想到,Nginx 動(dòng)態(tài) DNS 反向代理也有 N 種玩法,這主要取決于你用的 Nginx 版本,當(dāng)然運(yùn)維告訴我,最好是不要用動(dòng)態(tài) DNS,但是基于業(yè)務(wù)需要,咱們也沒(méi)有辦法。
茴字的第一種寫法:Nginx
在 Nginx 中通過(guò)設(shè)置變量可以曲線救國(guó),當(dāng)然有缺點(diǎn),通過(guò)變量的方法沒(méi)有辦法進(jìn)行負(fù)載均衡,非常麻煩,當(dāng)然如果你只有單機(jī)(在實(shí)際業(yè)務(wù)場(chǎng)景中幾乎不存在),還是可以一試的:
server { ... resolver 127.0.0.1; set $backend "http://dynamic.example.com:80"; proxy_pass $backend; ... }
第二種寫法:Nginx Plus
當(dāng)然 Nginx 不太好用,增強(qiáng)版的 Plus 就提供了一個(gè)更棒的寫法,它支持在 server 中寫入:
server { ... resolver 127.0.0.1 valid=30s; proxy_pass http://upstream-sites; ... }
第三種寫法:Tengine
Tengine 是淘寶家的魔改 Nginx,其實(shí)我挺煩的,因?yàn)樽铋_(kāi)始我不知道我們用的是 Tengine,導(dǎo)致配置沒(méi)有什么卵用,但是 Tengine 對(duì)于動(dòng)態(tài)域名解析卻支持的非常不錯(cuò),官方文檔寫得也很清楚。
upstream backend { dynamic_resolve fallback=stale fail_timeout=30s; server a.com; server b.com; } server { ... location / { proxy_pass http://backend; } }
其他
當(dāng)然,還可以使用 Lua 腳本來(lái)實(shí)現(xiàn),或者是別人的模塊,但是考慮到怕鼓搗壞,我還是不亂折騰了,所以沒(méi)有采取這種方案。
參考
ngx_http_upstream_dynamic_module - Tengine
Using DNS for Service Discovery with NGINX and NGINX Plus
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx反向代理出現(xiàn)502?Bad?Gateway問(wèn)題解決
在配置Nginx反向代理時(shí)遇到502 Bad Gateway錯(cuò)誤,經(jīng)過(guò)排查發(fā)現(xiàn)是SSL握手問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10Linux 系統(tǒng) nginx 服務(wù)器安裝及負(fù)載均衡配置詳解
nginx(engine x) 是一個(gè) 高性能 的 HTTP 和 反向代理 服務(wù)器、郵件代理服務(wù)器以及通用的 TCP/UDP 代理服務(wù)器。這篇文章主要介紹了Linux 系統(tǒng) nginx 服務(wù)器安裝及負(fù)載均衡配置詳解,需要的朋友可以參考下2019-07-07nginx try_files指令判斷文件是否存在實(shí)例
這篇文章主要介紹了nginx try_files指令判斷文件是否存在實(shí)例,本文用一個(gè)實(shí)際需求講解try_files指令的使用,并給出配置示例,需要的朋友可以參考下2015-02-02Nginx靜態(tài)資源服務(wù)器的實(shí)現(xiàn)示例
靜態(tài)資源即非服務(wù)器動(dòng)態(tài)生成的文件,本文主要介紹了Nginx靜態(tài)資源服務(wù)器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08Nginx服務(wù)器實(shí)現(xiàn)通過(guò)ip和user_gent限制訪問(wèn)的方法分析
這篇文章主要介紹了Nginx服務(wù)器實(shí)現(xiàn)通過(guò)ip和user_gent限制訪問(wèn)的方法,結(jié)合實(shí)例形式分析了Nginx通過(guò)限制ip和user_gent限制訪問(wèn)來(lái)過(guò)濾DDOS攻擊的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07Nginx轉(zhuǎn)發(fā)404問(wèn)題的排查和思考
本篇文章原自當(dāng)前業(yè)務(wù)遇到的一個(gè)實(shí)際問(wèn)題,因?yàn)槭艿剿诰W(wǎng)絡(luò)環(huán)境的因素影響,所以整體排查下來(lái)耗費(fèi)了很大精力,記錄一下Nginx 轉(zhuǎn)發(fā) 404 問(wèn)題的排查和思考,需要的朋友可以參考下2023-09-09Nginx服務(wù)器作反向代理時(shí)的緩存配置要點(diǎn)解析
這篇文章主要介紹了Nginx服務(wù)器作反向代理時(shí)的緩存配置要點(diǎn)解析,需要的朋友可以參考下2016-04-04Mac上搭建nginx+rtmp直播服務(wù)器的步驟詳解
最近的直播很火,所以這篇文章跟大家分享了在Mac上搭建nginx+rtmp直播服務(wù)器的步驟,文章通過(guò)一步步圖文介紹的很詳細(xì),有需要的朋友們可以參考借鑒。2016-09-09