程序猿进阶之路「内网域名」

企业场景

一般在企业内部,开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的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版本,执行命令:
  1. docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75
执行完毕以后,通过命令查看是否创建并运行成功:
  1. [root@test125 ~]# docker ps
  2. CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                                    NAMES
  3. 38ae71377ef1        andyshinn/dnsmasq:2.75   "dnsmasq -k"        22 hours ago        UpAbout an hour    0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp   dns-server

配置DNS

进入容器:
  1. docker exec -it dns-server /bin/sh
创建代理文件:
  1. vi /etc/resolv.dnsmasq
添加内容:
  1. nameserver 114.114.114.114
  2. nameserver 8.8.8.8
新建本地解析规则配置:
  1. vi /etc/dnsmasqhosts
添加解析规则:
  1. 192.168.1.125  dev.52itstyle.com test.52itstyle.com sit.52itstyle.com
修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件:
  1. vi /etc/dnsmasq.conf
追加下述两个配置
  1. resolv-file=/etc/resolv.dnsmasq
  2. addn-hosts=/etc/dnsmasqhosts
退出容器:
  1. exit
重启容器:
  1. docker restart dns-server

Nginx安装

安装OpenResty之前需要下载一些必备的依赖:
  1. yum install readline-devel pcre-devel openssl-devel -y
  2. yum install wget perl gcc -y
下载最新版本:
  1. wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
解压:
  1. tar -xvf openresty-1.13.6.1.tar.gz
安装配置:
  1. ./configure
您可以使用下面的命令来编译安装:
  1. make && make install
如果您的电脑支持多核 make 工作的特性, 您可以这样编译安装:
  1. make && make install   -j2
为了方便启动,建立软连接:
  1. ln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
在/usr/local/openresty/nginx/conf文件夹下创建vhosts目录,然后依次创建一下文件(演示文件,正式环境中会有多个项目转发)。
dev.52itstyle.com.conf:
  1. server{
  2.    listen 80;
  3.    server_name dev.52itstyle.com;
  4.    proxy_set_header            Host $host;
  5.    location /{
  6.         proxy_pass http://192.168.1.170:8080;
  7.    }
  8. }
test.52itstyle.com.conf:
  1. server{
  2.    listen 80;
  3.    server_name test.52itstyle.com;
  4.    proxy_set_header            Host $host;
  5.    location /{
  6.         proxy_pass http://192.168.1.180:8080;
  7.    }
  8. }
sit.52itstyle.com.conf:
  1. server{
  2.    listen 80;
  3.    server_name sit.52itstyle.com;
  4.    proxy_set_header            Host $host;
  5.    location /{
  6.         proxy_pass http://192.168.1.190:8080;
  7.    }
  8. }
配置文件:
  1. vi /usr/local/openresty/nginx/conf/nginx.conf
  1. worker_processes  2;
  2. events {
  3.    worker_connections  1024;
  4. }
  5. http {
  6.    include       mime.types;
  7.    default_type  application/octet-stream;
  8.    sendfile        on;
  9.    keepalive_timeout  65;
  10.    #导入各个环境
  11.    include vhosts/*.conf;
  12. }
启动服务:执行 nginx命令即可。

本机验证

那么如何验证这些域名可以解析到我们的内网项目,只需要修改本机dns服务器地址即可:
配置完成后,我们就可以通过dev.52itstyle.com等相关域名访问我们的内网项目了。
当然,最好是可以直接修改路由器的DNS,这样就不用每个电脑都配置DNS了。
本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » 程序猿进阶之路「内网域名」

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多