Nginx 动态域名解析过程详解

 更新时间:2023年03月02日 09:30:56   作者:昵称为空C  
这篇文章主要为大家介绍了Nginx 动态域名解析过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

摘要

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重写了

启动访问

基于K8S的CoreDns动态域名解析

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 动态域名的资料请关注脚本之家其它相关文章!

相关文章

  • k8s部署nginx访问Tomcat的实现示例

    k8s部署nginx访问Tomcat的实现示例

    本文介绍了如何使用Kubernetes部署Nginx,并通过Nginx访问Tomcat,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • nginx访问路径映射资源目录的实现

    nginx访问路径映射资源目录的实现

    本文主要介绍了nginx访问路径映射资源目录,Nginx映射资源目录是指在Nginx配置文件中设定规则,使得当客户端向Nginx服务器发送请求访问某个URL时,Nginx能够将该URL映射到服务器本地的实际文件目录,感兴趣的可以了解一下
    2024-06-06
  • Nginx同时支持Http和Https的配置详解

    Nginx同时支持Http和Https的配置详解

    这篇文章主要介绍了Nginx同时支持Http和Https的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • nginx中调度算法的五种实现

    nginx中调度算法的五种实现

    本文主要介绍了nginx中调度算法的五种实现,包括轮询、权重轮询、IP哈希、fair和URL哈希,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • 使用Nginx来共享文件的详细教程

    使用Nginx来共享文件的详细教程

    有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用 nginx 来实现这个需求,本文将通过代码示例一步步教你使用Nginx来共享文件,需要的朋友可以参考下
    2025-01-01
  • Nginx中proxy_pass使用小结

    Nginx中proxy_pass使用小结

    本文详细介绍了Nginx中proxy_pass指令的基本用法、配置示例及高级用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • nginx将泛解析的匹配域名绑定到子目录配置方法

    nginx将泛解析的匹配域名绑定到子目录配置方法

    这篇文章主要介绍了nginx将泛解析的匹配域名绑定到子目录配置方法,需要的朋友可以参考下
    2014-03-03
  • Nginx基于多个ip的虚拟主机的详细配置

    Nginx基于多个ip的虚拟主机的详细配置

    本文详细介绍了如何使用nginx配置基于多个IP地址的虚拟主机,通过虚拟主机,可以优化服务器资源,提高安全性和灵活性,节省IP资源,文章也提供了基于域名和端口的虚拟主机配置代码,方便读者参考实施
    2024-11-11
  • Nginx访问控制的原理及实现

    Nginx访问控制的原理及实现

    访问控制是一种安全机制,旨在限制系统或网络资源的访问权限,本文主要介绍了Nginx访问控制的原理及实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 树莓派如何搭建web服务器(nginx +php + mysql + vsftpd +phpmyadmin)

    树莓派如何搭建web服务器(nginx +php + mysql + vsftpd +phpmyadmin)

    本文介绍如何使用树莓派搭建Web服务器,包括安装Nginx、PHP、MySQL、ftp和phpMyAdmin,步骤详尽,涵盖不同架构的PHP安装,提供了配置MySQL远程访问和管理数据库的方法,是搭建个人Web服务器的实用指南
    2024-11-11

最新评论