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

公司內網搭建代理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

執行完畢以後,通過命令查看是否創建並運行成功:

[root@test125 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES38ae71377ef1 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.114nameserver 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.dnsmasqaddn-hosts=/etc/dnsmasqhosts

退出容器:

exit

重啟容器:

docker restart dns-server

Nginx安裝

安裝OpenResty之前需要下載一些必備的依賴:

yum install readline-devel pcre-devel openssl-devel -yyum 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.confworker_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

鏈接:imooc.com/article/28342

來源:慕課網

本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作


推薦閱讀:

【重磅】認證作者招募 | 打造個人品牌 so easy !

有獎徵文003期|程序員進階路上,哪本書你認為很不錯,對你幫助很大?

安裝Linux虛擬機,助力學習大數據

Linux 基礎 - 常用命令篇

資料庫系列:oracle體系結構


推薦閱讀:

Linux終端常用快捷鍵
您最喜歡使用哪個 Linux 發行版作為桌面使用?為什麼?
linux 下root用戶執行rm -rf /後,系統會有哪些反應,會立刻死機嗎?
Linux是否有類似於IIS統一管理網站的工具?

TAG:Linux | Linux開發 | 計算機網路 |