CentOS7利用DNS和Nginx代理做内网域名解析

1,为了将生产环境和开发区分开,方便开发,将利用DNS和Nginx代理做内网域名解析。

环境要求:

服务器:CentOS7 64位  IP:192.168.1.49

DNS

Nginx1.1

客户端:CentOS7 64位 IP:192.168.1.45

Gitlab

2.1,安装DNS服

[[email protected] ~]# yum install bind bind-bind-libs

2.2,修改/etc/named.conf配置文件

[[email protected] ~]#vim /etc/named.conf

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

options {

//      listen-on port 53 { 127.0.0.1; };//开启监听端口53,接受任意IP连接

//      listen-on-v6 port 53 { ::1; };//支持IP V6

directory       "/var/named";//所有的正向反向区域文件都在这个目录下创建

dump-file       "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

//      allow-query     { localhost; };//允许IP查询

/*

- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

- If you are building a RECURSIVE (caching) DNS server, you need to enable

recursion.

- If your recursive DNS server has a public IP address, you MUST enable access

control to limit queries to your legitimate users. Failing to do so will

cause your server to become part of large scale DNS amplification

attacks. Implementing BCP38 within your network would greatly

reduce such attack surface

*/

recursion yes;

dnssec-enable no;

dnssec-validation no;

/* Path to ISC DLV key */

//      bindkeys-file "/etc/named.iscdlv.key";

//      managed-keys-directory "/var/named/dynamic";

//      pid-file "/run/named/named.pid";

//      session-keyfile "/run/named/session.key";

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN {

type hint;

file "named.ca";

};

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

注:注释掉以上信息

启动DNS服务

[[email protected] ~]#systemctl start named.service

查看端口是否启用

[[email protected] ~]#ss -tunl | grep :53

2.3,编辑/etc/named.rfc1912.zones配置文件,在文件尾部添加以下行

[[email protected] ~]#vim /etc/named.rfc1912.zones

zone "local.yaok.com" IN {

type master;

file "local.yaok.com.zone";

};

重读配置文件

[[email protected] ~]#rndc reload

查看DNS状态

[[email protected] ~]#rndc status

2.4编辑/var/named/local.yaok.com.zone 配置文件

[[email protected] ~]# vim /var/named/local.yaok.com.zone

检查配置文件语法错误,没有语法错误

[[email protected] ~]# named-checkzone "local.yaok.com" /var/named/local.yaok.com.zone

进入/var/named/目录

[[email protected] ~]# cd /var/named/

更改local.yaok.com.zone 的改组为named

[[email protected] named]# chown :named local.yaok.com.zone

修改local.yaok.com.zone 文件权限为640

[[email protected] named]# chmod 640 local.yaok.com.zone

 重读配置文件

[[email protected] ~]#rndc reload

配置域名解析是否正确,可以正常解析

[[email protected] named]# dig -t A local.yaok.com @192.168.1.49

3.1,安装Nginx

[[email protected] ~]# yum install niginx

启动Nginx服务

[[email protected] ~]# /usr/sbin/nginx

查看80端口是否正常启动

[[email protected] ~]# ss -tunl |grep 80

先备份nginx.conf配置文件

[[email protected] ~]#cp /etc/nginx/nginx.conf{,.bak}

3.2,修改nginx.conf配置文件

[[email protected] ~]# vim /etc/nginx/nginx.conf

添加以下配置文件

upstream server {

server 192.168.1.45;

}

server {

listen    80;

server_name  git.local.yaok.com;

location / {

proxy_pass http://server;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

测试Nginx语法是否有错

[[email protected] usr]# sbin/nginx -t

重读Nginx配置文件

[[email protected] usr]#sbin/nginx -s reload

3.3,检测访问结果是否正确

[[email protected] usr]# curl -i http://git.local.yaok.com

4,使用客户端来访问

时间: 2024-10-10 16:34:13

CentOS7利用DNS和Nginx代理做内网域名解析的相关文章

搭建Nginx反向代理做内网域名转发

由于公司内网有多台服务器的 http 服务要映射到公司外网静态 IP,如果用路由的端口映射来做,就只能一台内网服务器的 80 端口映射到外网 80 端口,其他服务器的 80 端口只能映射到外网的非 80 端口.非 80 端口的映射在访问的时候要域名加上端口,比较麻烦. 我们可以在内网搭建一个Nginx反向代理服务器,将Nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到Nginx反向代理服务器,利用Nginx反向代理将不同域名的请求转发到内网不

医院内外网之间通过网闸交互,通过端口转发加nginx代理实现内网访问外网

首先介绍下主要需求,很简单,就是要在医院his系统内嵌公司的平台,实现内网直接访问外网 这是院方给我提供的网闸相关配置,105是医院内网的服务器,120是外网的服务器,中间通过网闸配置的几个端口实现互通 首先我们需要用windos的netsh命令增加一条端口转发规则 172.16.20.105的10002端口转发到172.16.21.27的10003端口 然后我们在27服务器上的10003端口启动sso服务以供调用,调用之后返回 然后需要在27上做一个nginx代理以实现对外网的访问 最后我们在

搭建nginx反向代理用做内网域名转发

基于域名的7层转发的实现(NAT+反向代理) 在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难.一一对应关系也没有规律.访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下: Public IP Public Port Number Internal IP Internal Port Number Note 1.1.1.1 80 192.168.1.10

如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN

如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN 如何用BIND, GeoIP, Nginx, Varnish来创建你自己的高效的CDN网络?CDN,意思是Content Distrubtion Network,意思是内容分发网络,简单的说,就是全地域范围内的负载均衡,全地域的概念可以是全国,也可以是全世界.由统一的DNS服务器进行地址转发,选择离用户最近的地区服务器进行负载均衡.本质上是从一个机房内的负载均衡扩展到了全世界范围内的负载均衡.同时可以将本地化的内容,由当地的服

用 ROS 做内网DNS服务器

转载:http://iliuyong.iteye.com/blog/1035692 用 ROS 做内网DNS服务器方法:1.ROS 设置IP ->DNS 选择"static"选项卡点击"+",name随便起,address填你的路由器内网IP,TTL默认."OK"此时应该已经存在了一个你刚刚建立的DNS服务器名,并点击"settings",分别填写主辅DNS地址,选择"allow remote requeste

利用nginx 来实现内网yum源(反向代理)

简介 在项目部署时,尤其是在政府企业,对于外网简直是奢望,但是对于运维来说,没有外网的话只能自建yum源.我今天来说的是一种简单的自建yum源方法,前提是必须有一台内外网都有的机器,我们一般称为前置机. 操作思路 1.使用nginx 反向代理 阿里云源 2.在内网机器自建repo指向nginxip nginx配置 12345678 server { listen 80; location /centos/ { proxy_pass http://mirrors.aliyun.com/centos

使用nginx正向代理实现内网域名转发

客户内网环境,使用ppoe拨号上网,提供商为集团内部二级运营商,网络环境比较复杂,在集团内部网络和办公网络采用静态路由协议互联,大致情况如下所示: 原来客户访问生产业务,都是通过ip地址访问,随着生产业务越来越多,现在客户强烈要求使用域名方式访问业务.但是鉴于内网环境复杂,不好部署域名服务器,部署了访问业务也比较困难.后来学习nginx,知道nginx可以实现正向代理实现域名转发.整体思路如下:说明:1.在阿里云上配置域名解析.例如OA.XXXX.COM,解析地址为内网地址172.31.101.

Squid显式代理实现内网上网

一.Squid显式代理上网 Squid显式代理,监听某地址的3128活着8080端口,需要内网用户在浏览器上手动设置代理配置.内网pc只需要保证能路由可达Squid监听的地址即可,无需配置dns,内网pc的所有访问流量都通过浏览器出去(包括DNS解析). 二.配置 拓扑: (该模式下squid单臂部署,路由模式也是没问题的,但需要保证squid能正常上网) ①安装squid  [[email protected] ~]#   yum  install  -y  squid ②配置squid的配置

利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发

近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功能将远程桌面请求转发至内网主机. SSH隧道 SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据,除此之外SSH 还能够将其他TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务,这一功能也称为“SSH隧道”.SSH隧道分为本地转发.远程转发和动态转发. 本地转