Nginx 動(dòng)態(tài)域名解析過程詳解
摘要
Nginx進(jìn)行反向代理的時(shí)候會(huì)進(jìn)行域名解析,把域名解析為具體IP后緩存在本地,如果域名對(duì)應(yīng)的IP發(fā)生了改變,則會(huì)導(dǎo)致Nginx代理失效,下面使用Nginx的resolver指令來實(shí)現(xiàn)域名動(dòng)態(tài)解析。
基于自定義DNS服務(wù)器動(dòng)態(tài)解析
內(nèi)網(wǎng)DNS服務(wù)器我使用的是dnsmasq
default.conf配置
server {
listen 80;
root /usr/share/nginx/html/;
resolver 192.168.137.110 valid=5s;
set $proxy_url huzhihui.local;
include /etc/nginx/default.d/*.conf;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
client_max_body_size 100m;
add_header tenantId $arg_tenantId;
add_header appId $arg_appId;
}
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite /api/(.*) /$1 break;
proxy_pass http://$proxy_url:8070;
}
}
主要配置點(diǎn)
resolver:配置DNS服務(wù)器,和解析地址的有效期valid,
set:用來配合resolver做域名的IP地址解析
rewrite:對(duì)訪問路徑進(jìn)行修改
proxy_pass:實(shí)際跳轉(zhuǎn)到的代理服務(wù),不要帶路徑參數(shù),因?yàn)樯厦嬉呀?jīng)用rewrite重寫了
啟動(dòng)訪問
基于K8S的CoreDns動(dòng)態(tài)域名解析
default.conf
server {
listen 80;
root /usr/share/nginx/html/;
resolver kube-dns.kube-system.svc.cluster.local valid=10s;
set $a_part_host a-part-http-service.huzhihui.svc.cluster.local;
include /etc/nginx/default.d/*.conf;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
client_max_body_size 100m;
add_header tenantId $arg_tenantId;
add_header appId $arg_appId;
}
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:5031/;
}
location /a-part/ {
client_max_body_size 100m;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite /a-part/(.*) /api/$1 break;
proxy_pass http://$a_part_host;
}
location ~ .*\.(html)$ {
#html disabled cache
add_header Cache-Control no-store;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
主要配置點(diǎn)
kube-dns.kube-system.svc.cluster.local:這個(gè)域名是K8S DNS的域名a-part-http-service.huzhihui.svc.cluster.local:a-part-http-service是K8S定義的svc名稱,huzhihui是我定義的namespaces,
做完上面的配置,svc重啟后ip改變也不會(huì)導(dǎo)致反向代理失效了。
以上就是Nginx 動(dòng)態(tài)域名解析過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Nginx 動(dòng)態(tài)域名的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
k8s部署nginx訪問Tomcat的實(shí)現(xiàn)示例
本文介紹了如何使用Kubernetes部署Nginx,并通過Nginx訪問Tomcat,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
nginx中調(diào)度算法的五種實(shí)現(xiàn)
本文主要介紹了nginx中調(diào)度算法的五種實(shí)現(xiàn),包括輪詢、權(quán)重輪詢、IP哈希、fair和URL哈希,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
Nginx基于多個(gè)ip的虛擬主機(jī)的詳細(xì)配置
本文詳細(xì)介紹了如何使用nginx配置基于多個(gè)IP地址的虛擬主機(jī),通過虛擬主機(jī),可以優(yōu)化服務(wù)器資源,提高安全性和靈活性,節(jié)省IP資源,文章也提供了基于域名和端口的虛擬主機(jī)配置代碼,方便讀者參考實(shí)施2024-11-11
樹莓派如何搭建web服務(wù)器(nginx?+php?+?mysql?+?vsftpd?+phpmyadmin)
本文介紹如何使用樹莓派搭建Web服務(wù)器,包括安裝Nginx、PHP、MySQL、ftp和phpMyAdmin,步驟詳盡,涵蓋不同架構(gòu)的PHP安裝,提供了配置MySQL遠(yuǎn)程訪問和管理數(shù)據(jù)庫(kù)的方法,是搭建個(gè)人Web服務(wù)器的實(shí)用指南2024-11-11

