美文网首页
局域网多个 web 服务域名解析( DNS ) + Nginx

局域网多个 web 服务域名解析( DNS ) + Nginx

作者: Abbott思宇 | 来源:发表于2019-01-10 15:34 被阅读0次

    [TOC]

    参考资料

    nginx配置反向代理示例 - cnblogs
    技巧集:nginx作代理时,查看请求被转发到哪台服务器 -
    CentOS7 搭建 DNS 域名解析服务器
    CentOS7 使用 yum 安装配置 Nginx
    TPLINK路由器DHCP中DNS设置 - 百度知道

    背景

    局域网内,有很多的服务器,提供不同的服务

    服务描述 IP 端口
    主路由器 192.168.0.1 80
    项目A测试环境 192.168.0.232 8080
    项目A正式环境镜像 192.168.0.233 8080
    jenkins 192.168.0.235 8080
    DNS服务 192.168.0.235 53
    Nginx 192.168.0.11 80

    目前,访问局域网中这些服务都要采用 IP + 端口 的方式访问,这样有存在几个问题:

    • IP + 端口 的访问形式,与外网访问服务方式不同,有些业务场景难以重现
    • IP + 端口 的访问形式,不容易记忆,服务容易混淆
    • IP + 端口 的访问形式,不够优雅

    解决方案

    预期效果

    • 局域网中,用户使用自动 IP ,自动 DNS 配置
    • 用户可以正常使用域名(不带端口号)访问局域网中假设的 web 服务
    • 如果有需要,可以容易的知道 web 服务的具体 IP 和 端口号

    网络拓扑结构

    image.png

    总路由器配置

    路由器配置,主要是解决局域网用户使用自动 IP 自动 DNS 配置时,有限使用局域网内的 DNS 服务进行域名解析

    使用 主路由器 的 DHCP 服务 达成目标。

    注意 将主 DNS 服务 IP 设置为局域网 DNS 服务器的 IP!

    image.png

    DNS 配置文件设置

    各个 web 服务计划解析后的域名和访问方式

    服务描述 IP 端口 域名 访问 URL
    项目A测试环境 192.168.0.232 8080 test.reading.zt http://test.reading.zt/admin/index/login.htm
    项目A正式环境镜像 192.168.0.233 8080 mirror.reading.zt http://mirror.reading.zt/admin/index/login.htm

    注意 由于我们采用 Nginx 服务器进行反向代理,因此,DNS 全部指向 Nginx 服务器;并在 DNS
    正向域名解析文件配置文件中,对同一个 IP 配置多个域名。

    参考配置

    配置正向域名解析文件 named.reading.zt : vi /var/named/named.reading.zt ,配置内容如下:

    $TTL 1D
    @   IN SOA  @ rname.invalid. (
                        0   ; serial
                        1D  ; refresh
                        1H  ; retry
                        1W  ; expire
                        3H )    ; minimum
        NS  @
        A   127.0.0.1
        AAAA    ::1
    mirror  A   192.168.0.11
    test    A   192.168.0.11
    

    DNS 服务器的搭建和配置,可以参考:CentOS7 搭建 DNS 域名解析服务器

    Nginx 配置文件设置

    注意

    我采用的是 yum 安装的 Nginx 1.14.2;Nginx 配置文件存放路径为 /etc/nginx/conf.d

    参考配置

    反向代理 192.168.0.232 -> test.reading.zt 配置为: vi /etc/nginx/conf.d/test.reading.zt.conf

    server {
      listen       80;
      server_name  test.reading.zt;
    
      location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://192.168.0.232:8080;
        add_header backendIP $upstream_addr;
        add_header backendCode $upstream_status;
      }
    }
    

    反向代理 192.168.0.233 -> mirror.reading.zt 配置为: vi /etc/nginx/conf.d/mirror.reading.zt.conf

    server {
      listen       80;
      server_name  mirror.reading.zt;
    
      location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://192.168.0.233:8080;
        add_header backendIP $upstream_addr;
        add_header backendCode $upstream_status;
      }
    }
    

    Nginx 服务器的搭建和配置,可以参考:CentOS7 使用 yum 安装配置 Nginx

    如何查看 web 服务提供的服务器 IP

    以 chrome 为例,F12 后操作如下图

    image.png

    相关文章

      网友评论

          本文标题:局域网多个 web 服务域名解析( DNS ) + Nginx

          本文链接:https://www.haomeiwen.com/subject/nhearqtx.html