Nginx 动态域名解析过程浅谈

 

本文主要为大家介绍了Nginx 动态域名解析过程,有需要的朋友可以借鉴参考下,希望能够有所帮助

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

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

内网DNS服务器我使用的是dnsmasq

default.conf配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

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 动态域名解析过程详解的详细内容,希望可以帮到你。

来源:微点阅读   https://www.weidianyuedu.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值