公司内网搭建代理DNS使用内网域名代替ip地址

企业场景

一般在企业内部,开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问。然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方)。但是你不永远不会确定,那天由于升级突然改了IP,我们可能又要重新撸一遍配置,所以内网域名还是非常有必要的。

内网域名具体有哪些优点:

  • 方便记忆
  • 变更IP,只需要修改DNS即可

服务器环境

192.168.1.170(开发)
192.168.1.180(测试)
192.168.1.190(预生产)
192.168.1.125(DNS+Nginx)

DNS安装

安装容器

为了方便,我们使用docker环境手动搭建一个DNS服务器。

选择andyshinn/dnsmasq的docker镜像,2.75版本,执行命令:

docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75

执行完毕以后,通过命令查看是否创建并运行成功:

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                                    NAMES
38ae71377ef1        andyshinn/dnsmasq:2.75   "dnsmasq -k"        22 hours ago        Up About an hour    0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp   dns-server

配置DNS

进入容器:

docker exec -it dns-server /bin/sh

创建代理文件:

vi /etc/resolv.dnsmasq

添加内容:

nameserver 114.114.114.114
nameserver 8.8.8.8

新建本地解析规则配置:

vi /etc/dnsmasqhosts

添加解析规则:

192.168.1.125  dev.52itstyle.com test.52itstyle.com sit.52itstyle.com

修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件:

vi /etc/dnsmasq.conf

追加下述两个配置

resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts

退出容器:

exit

重启容器:

docker restart dns-server

Nginx安装

安装OpenResty之前需要下载一些必备的依赖:

yum install readline-devel pcre-devel openssl-devel -y
yum install wget perl gcc -y

下载最新版本:

wget https://openresty.org/download/openresty-1.13.6.1.tar.gz

解压:

tar -xvf openresty-1.13.6.1.tar.gz

安装配置:

./configure

您可以使用下面的命令来编译安装:

make && make install

如果您的电脑支持多核 make 工作的特性, 您可以这样编译安装:

make && make install   -j2

为了方便启动,建立软连接:

ln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx

在/usr/local/openresty/nginx/conf文件夹下创建vhosts目录,然后依次创建一下文件(演示文件,正式环境中会有多个项目转发)。

dev.52itstyle.com.conf:

server{
    listen 80;
    server_name dev.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.170:8080;
    }
}

test.52itstyle.com.conf:

server{
    listen 80;
    server_name test.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.180:8080;
    }
}

sit.52itstyle.com.conf:

server{
    listen 80;
    server_name sit.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.190:8080;
    }
}

配置文件:

vi /usr/local/openresty/nginx/conf/nginx.conf
worker_processes  2;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #导入各个环境
    include vhosts/*.conf;
}

启动服务:执行 nginx命令即可。

本机验证

那么如何验证这些域名可以解析到我们的内网项目,只需要修改本机dns服务器地址即可:

配置完成后,我们就可以通过dev.52itstyle.com等相关域名访问我们的内网项目了。

当然,最好是可以直接修改路由器的DNS,这样就不用每个电脑都配置DNS了。

作者: 小柒2012

欢迎关注: https://blog.52itstyle.com

原文地址:http://blog.51cto.com/itstyle/2113040

时间: 2024-10-07 17:03:43

公司内网搭建代理DNS使用内网域名代替ip地址的相关文章

网址(url),域名,ip地址,dns,hosts之间的关系

什么是ip? 我们知道,在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址.通过IP地址就可以访问到每一台主机. IP地址由4部分数字组成,每部分都不大于256,各部分之间用小数点分开.例如"百度搜索"主机的IP地址就是:"119.75.217.109,"在浏览器上输入这个IP地址,就可以访问到百度的主页. 我们的每个虚拟主机用户,都分配一个永久的IP地址. 什么是域名? 虽然可以通过IP地址来访问每一台主机,但

部署DNS正向解析-使域名和ip互相认识能够友好的访问

NDS洋名:Domain Name System      汉名:域名系统作用:它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网 主配置文件(/etc/named.conf):只有58行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行. 区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置.类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修

nginx反向代理到后端tomcat,并将IP地址发送到后端的配置

nginx反向代理到后端,并将IP地址发送到后端的tomcat上. 假设我们的网站叫demo.demo.com 前端Nginx配置如下: /usr/local/nginx/conf/nginx.conf 在http段加上下面4行:     proxy_set_header X-Forwarded-For $remote_addr;     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     proxy_set_head

让nginx反向代理能够记录来自客户端的真实IP地址

上一节,我们说到了让Nginx能够正确识别用户到底访问的是哪个虚拟主机的域名,本章,我们讨论一下,如何让Nginx能够记录来自客户端的真实IP地址. 1.首先,我们看一下httpd的访问日志,看看客户端的IP地址是哪一个? 192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.0" 200 13 192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.

Apache搭建Web主机(虚拟目录、分别基于IP地址、端口、主机名)

Apache介绍 Apache HTTP Server是一款开源的网站服务软件,在Web服务器领域中长期保持着超过半数的份额,Apache服务器可以运行在Linux.UNIX.Windows等多数操作系统平台中. Apache服务器在功能.性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求,其主要特点包括以下几个方面: 开放源代码 跨平台应用 支持各种Web编程语言 模块化设计 运行非常稳定 良好的安全性 构建虚拟Web主机 在同一台Apache服务器中运行多个We

关于nginx反向代理后获取不到客户端的ip地址问题

通过查资料后,再去看了看我的配置文件,结果发现我没有如下配置: nginx反向代理配置时,一般会添加下面的配置: proxy_set_header Host $host;      proxy_set_header X-Real-IP $remote_addr;      proxy_set_header REMOTE-HOST $remote_addr;      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; loca

linux中配合IS-IS搭建DHCP服务让客户机自动获取IP地址

实验目的:首先是配置上次发表IS-IS的部分配置过程,然后结合两台linux虚拟机,一台DHCP服务器,一台客户机,让客户机自动获取IP,使用DHCP给他保留的特定的IP地址,然后测试能够和另外一台添加的PC机互联互通. 实验过程:首先配置路由器的IP地址和IS-IS协议.RIP协议.并设置路由重分发. 然后配置linux-1的DHCP服务器以及配置文件. 然后配置linux-2的网卡参数为自动获取IP地址. 最后使用VPCS配置C1的IP地址测试和linux-2客户机的互通性.下面是详细过程.

ip地址/子网掩码/默认网关/DNS服务器/DHCP服务器/WINS服务器/NetBIOS over TCP/IP

参考原文地址:http://www.cnblogs.com/JuneWang/p/3917697.html ip地址: ipv4 ip地址=网络号+主机号 子网掩码: 子网掩码是用来判断任意两台计算机的ip地址是否属于同一子网络的根据.最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯 网关: 那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址

IP地址、域名、DNS、网址之间的区别

1.IP地址:IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信. 每台连网计算机都依靠IP地址来互相区分.相互联系 2.域名:由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址.每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了.这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名. 3.DNS:在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便