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