Nginx 动态域名解析

标签: nginx 域名解析 | 发表时间:2023-03-01 18:11 | 作者:昵称为空C
出处:https://juejin.cn/backend

摘要: Nginx进行反向代理的时候会进行域名解析,把域名解析为具体 IP后缓存在本地,如果域名对应的 IP发生了改变,则会导致 Nginx代理失效,下面使用 Nginxresolver指令来实现域名动态解析。

基于自定义DNS服务器动态解析

内网 DNS服务器我使用的是 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;
    }
}

主要配置点

  • resolver:配置DNS服务器,和解析地址的有效期 valid
  • set:用来配合 resolver做域名的 IP地址解析
  • rewrite:对访问路径进行修改
  • proxy_pass:实际跳转到的代理服务,不要带路径参数,因为上面已经用 rewrite重写了

启动访问

基于 K8SCoreDns动态域名解析

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 {
    }

}

主要配置点

  • kube-dns.kube-system.svc.cluster.local:这个域名是 K8S DNS的域名
  • a-part-http-service.huzhihui.svc.cluster.locala-part-http-serviceK8S定义的 svc名称, huzhihui是我定义的 namespaces

做完上面的配置, svc重启后 ip改变也不会导致反向代理失效了。

相关 [nginx 域名解析] 推荐:

Nginx 动态域名解析

- - 掘金 后端
摘要: Nginx进行反向代理的时候会进行域名解析,把域名解析为具体 IP后缓存在本地,如果域名对应的 IP发生了改变,则会导致 Nginx代理失效,下面使用 Nginx的 resolver指令来实现域名动态解析. 基于自定义DNS服务器动态解析. 内网 DNS服务器我使用的是 dnsmasq.

免费域名解析服务

- - 月光博客
  一般域名使用注册商提供的域名解析服务虽然方便,但功能大多有限,特别是目前国内还会针对某些DNS服务器进行屏蔽,造成网站无法解析的情况出现,因此,使用第三方域名解析服务也是中国网站的必要选择,这里就介绍一些常见的免费域名解析服务.    域名注册商提供的免费服务.    Godaddy:不在Godaddy注册域名,也可以使用Godaddy的域名解析服务,使用方法很简单,登录Godaddy网站后,点击“Add Off-site DNS”即可添加用户的域名,之后将用户域名的DNS设置为Godaddy指定的地址,域名DNS生效后,即可点击添加的域名进行DNS解析设置.

域名解析服务器 – OpenerDNS

- - FreeBuf.COM
OpenerDNS是面向国内普通互联网用户开放的“高速 安全 免费”的域名解析服务器. 还在使用Google DNS或者Opendns吗. 现在就切换到:OpenerDNS地址: 42.120.21.30. 为什么使用OpenerDNS:. 安全:我们保证解析数据的真实性,域名不被污染. 现在就切换到42.120.21.30,所有域名都准确解析了.

nginx配置ssl

- - 邢红瑞的blog
先生成网关证书 ,仿照CA模式.

Nginx安装

- - 企业架构 - ITeye博客
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环境可以使用以下指令. centos平台编译环境使用如下指令. 一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩.

Nginx GZip 压缩

- - 开心平淡对待每一天。热爱生活
  Nginx GZip 模块文档详见: http://wiki.nginx.org/HttpGzipModule 常用配置片段如下:. # 压缩比例,比例越大,压缩时间越长. 默认是1 gzip_types. text/css text/javascript; # 哪些文件可以被压缩 gzip_disable.

Nginx 限流

- - 鸟窝
电商平台营销时候,经常会碰到的大流量问题,除了做流量分流处理,可能还要做用户黑白名单、信誉分析,进而根据用户ip信誉权重做相应的流量拦截、限制流量. Nginx自身有的请求限制模块 ngx_http_limit_req_module、流量限制模块 ngx_stream_limit_conn_module基于令牌桶算法,可以方便的控制令牌速率,自定义调节限流,实现基本的限流控制.

修改windows XP 的 VPN域名解析DNS优先级

- 桔子 - iGFW
XP包括之前的系统拨入VPN后,会发现VPN接口配置的DNS的优先级不够而无法对内部主机进行解析. 导致虽然已经连上了vpn但是但是无法打开youtube、twitter等网站,因为系统默认的DNS还是原来的本地连接的DNS,依旧被劫持中. 而通过修改注册表值即可解决这个问题. 1.    点击开始, 点击运行, 键入REGEDIT, 然后按确定.

CentOS域名解析慢的处理方法

- - 快乐无极的博客
问题:打开很多网站都要花很长时间解析域名. 修改/etc/host.conf. order hosts,bind   (有的这一句没有. /etc/host.conf文件有三个东东可配置:. “order  bind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反).

NGINX的流媒体插件 nginx-rtmp-module

- - 开源软件 - ITeye博客
战斗民族俄罗斯人民开发的一款NGINX的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能. 基于HTTP的FLV/MP4 VOD点播. HLS (HTTP Live Streaming) M3U8的支持. 基于http的操作(发布、播放、录制). 可以很好的协同现有的流媒体服务器以及播放器一起工作.