公司內網搭建代理DNS使用內網域名代替ip地址

公司內網搭建代理DNS使用內網域名代替ip地址

企業場景

通常在企業內部,開發、測試以及預生產都會有一套供開發以及測試人員使用的網絡環境。運維人員會爲每套環境的相關項目配置單獨的Tomcat,而後開放一個端口,以 IP+Port 的形式訪問。然而隨着項目的增多,對於開發和測試人員記住如此多的內網地址,無疑是一件頭疼的事情(固然你也可使用瀏覽器書籤管理器或者記錄在某個地方)。可是你不永遠不會肯定,那天因爲升級忽然改了IP,咱們可能又要從新擼一遍配置,因此內網域名仍是很是有必要的。nginx

內網域名具體有哪些優勢:docker

  • 方便記憶
  • 變動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

執行完畢之後,經過命令查看是否建立並運行成功:app

[root@test125 ~]# 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

建立代理文件:tcp

vi /etc/resolv.dnsmasq

添加內容:ide

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服務器地址便可:

公司內網搭建代理DNS使用內網域名代替ip地址

配置完成後,咱們就能夠經過dev.52itstyle.com等相關域名訪問咱們的內網項目了。

固然,最好是能夠直接修改路由器的DNS,這樣就不用每一個電腦都配置DNS了。

做者: 小柒2012

歡迎關注: https://blog.52itstyle.com

相關文章
相關標籤/搜索