热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7中构建虚拟主机(实验篇)

虛拟Web主机在同一台物理服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机httpd支持的虚拟主机类型基于域名的虚拟主机

虛拟Web主机

  • 在同一台物理服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机

httpd支持的虚拟主机类型

  • 基于域名的虚拟主机
  • 基于IP地址的虚拟主机
  • 基于端口的虚拟主机

搭建实验

基于域名的虚拟主机

[root@localhost ~]# yum install bind httpd -y        //在服务器上安装DNS与HTTP服务
[root@localhost ~]# cd /etc/                         //进入etc目录
[root@localhost etc]# vim named.conf                 //进入编辑DNS服务主配置文件
...//省略部分内容...
options {
        listen-on port 53 { any; };                    //将监听IP地址更改为any,监听所有地址
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };                      //主机名更改为any,允许所有主机通过解析
...//省略部分内容...
:wq                                                        //保存退出
[root@localhost etc]# vim named.rfc1912.zones        //进入编辑区域配置文件
...//省略部分内容...
zone "kgc.com" IN {                                  //更改域名
        type master;
        file "kgc.com.zone";                         //更改数据文件名称
        allow-update { none; };
};

zone "aaa.com" IN {                                 //更改域名
        type master;
        file "aaa.com.zone";                      //更改数据文件名称
        allow-update { none; };
};
...//省略部分内容...
[root@localhost etc]# cd /var/named/               //进入区域数据文件存放目录
[root@localhost named]# cp -p named.localhost kgc.com.zone   //复制区域数据文件模板
[root@localhost named]# vim kgc.com.zone             //进入编辑模板
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.144.133                        //删掉最后一行,更改为此行
:wq                                                 //保存退出
[root@localhost named]# cp -p kgc.com.zone aaa.com.zone  //复制刚更改的数据文件,命名为aaa.com.zone,不需要更改内容
[root@localhost named]# systemctl start named             //启动DNS服务
[root@localhost named]# systemctl stop firewalld.service   //关闭防火墙
[root@localhost named]# setenforce 0                        //关闭增强性安全功能
[root@localhost html]# cd /etc/httpd/conf/     //进入http服务配置文件目录
[root@localhost conf]# mkdir extra             //创建文件夹
[root@localhost conf]# ls                      //查看目录
extra  httpd.conf  magic
[root@localhost extra]# vim vhost.conf         //编辑子配置文件
                           
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  
    Require all granted                                   //编辑虚拟主机配置条目
  



  DocumentRoot "/var/www/html/kgc/"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc.com.error_log"
  CustomLog "logs/www.kgc.com.access_log" common
  
    Require all granted
  

~
:wq                                                 //保存退出
[root@localhost extra]# cd /var/www/html/        //进入http服务网页站点
[root@localhost html]# mkdir aaa kgc              //创建目录文件
[root@localhost html]# cd aaa/                   //进入目录
[root@localhost aaa]# vim index.html            //编辑默认主页

this is aaa web

//编写内容 ~ :wq //保存退出 [root@localhost aaa]# ls //查看目录 index.html [root@localhost aaa]# cd ../kgc/ //返回上一层并进入kgc目录 [root@localhost kgc]# vim index.html //编辑默认网页

this is kgc web

//编辑内容 ~ :wq //保存退出 [root@localhost kgc]# ls //查看目录 index.html [root@localhost kgc]# vim /etc/httpd/conf/httpd.conf //进入编辑http服务主配置文件 ...//省略部分内容... # prevent Apache from glomming onto all bound IP addresses. # Listen 192.168.144.137:80 //打开ipv4监听地址,并更改为本机IP地址 #Listen 80 //关闭ipv6的监听地址 ...//省略部分内容... # Load config files in the "/etc/httpd/conf.d" directory, if any. IncludeOptional conf.d/*.conf Include conf/extra/vhost.conf //在最后一行添加包含子配置文件目录条目 :wq //保存退出 [root@localhost kgc]# systemctl start httpd //开启http服务 [root@localhost kgc]# netstat -ntap | grep 80 //查看80端口是否开启 tcp6 0 0 :::80 :::* LISTEN 2450/httpd

打开一台win10客户机,更改DNS服务器地址,打开网页,测试基于不同域名构建虚拟主机是否成功

CentOS 7中构建虚拟主机(实验篇)CentOS 7中构建虚拟主机(实验篇)CentOS 7中构建虚拟主机(实验篇)

基于端口建立虚拟主机

此处实验就直接在上面的实验中更改配置,不重新操作

[root@localhost named]# vim /etc/httpd/conf/extra/vhost.conf
...//省略部分内容...

  DocumentRoot "/var/www/html/kgc/"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc.com.error_log"
  CustomLog "logs/www.kgc.com.access_log" common
  
    Require all granted
  



  DocumentRoot "/var/www/html/kgc02/"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc02.com.error_log"
  CustomLog "logs/www.kgc02.com.access_log" common   
     //复制上面的配置文件条目,并更改监听端口为8080,并将站点目录、日志文件名更改为kgc02
    Require all granted
  

:wq                       //保存退出
[root@localhost named]# cd /var/www/html/
[root@localhost html]# mkdir kgc02
[root@localhost html]# cd kgc02/
[root@localhost kgc02]# vim index.html

this is kgc02 web

~ :wq [root@localhost kgc02]# vim /etc/httpd/conf/httpd.conf ...//省略部分内容... # prevent Apache from glomming onto all bound IP addresses. # Listen 192.168.144.137:80 Listen 192.168.144.137:8080 #Listen 80 ...//省略部分内容... :wq [root@localhost kgc02]# systemctl restart httpd

在win10客户端验证基于端口的虚拟主机配置

CentOS 7中构建虚拟主机(实验篇)CentOS 7中构建虚拟主机(实验篇)

基于IP地址建立虚拟主机

在这里先给Linux服务器虚拟机添加一张网卡,获取另一个IP地址

CentOS 7中构建虚拟主机(实验篇)

在虚拟机中获取IP地址

[root@localhost ~]# ifconfig          //查看网卡信息
ens33: flags=4163  mtu 1500
        inet 192.168.144.137  netmask 255.255.255.0  broadcast 192.168.144.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20
        inet6 fe80::ad78:663f:1f02:22e4  prefixlen 64  scopeid 0x20
        ether 00:0c:29:72:65:cb  txqueuelen 1000  (Ethernet)
        RX packets 14117  bytes 10290025 (9.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6337  bytes 767788 (749.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163  mtu 1500
        inet 192.168.144.143  netmask 255.255.255.0  broadcast 192.168.144.255  //成功获取IP地址
        inet6 fe80::d65e:47b1:916d:de6c  prefixlen 64  scopeid 0x20
        ether 00:0c:29:72:65:d5  txqueuelen 1000  (Ethernet)
        RX packets 115  bytes 20495 (20.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 79  bytes 17837 (17.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...//省略部分内容...
[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf          //进入编辑http服务子配置文件
         //更改为固定IP地址
  DocumentRoot "/var/www/html/aaa/"
  ServerName www.aaa.com
  ErrorLog "logs/www.aaa.com.error_log"
  CustomLog "logs/www.aaa.com.access_log" common
  
    Require all granted
  


           //复制上面配置条,更改IP地址
  DocumentRoot "/var/www/html/aaa02/"      //更改站点文件
  ServerName www.naaa.com                  //更改域名
  ErrorLog "logs/www.aaa02.com.error_log"  //更改错误日志文件名
  CustomLog "logs/www.aaa02.com.access_log" common   //更改日志文件名
  
    Require all granted
  

:wq                                       //保存退出
[root@localhost ~]# vim /etc/named.rfc1912.zones   //编辑DNS区域配置文件
...//省略部分内容...
zone "aaa.com" IN {
        type master;
        file "aaa.com.zone";
        allow-update { none; };
};

zone "naaa.com" IN {
        type master;             //添加新的区域配置文件
        file "naaa.com.zone";
        allow-update { none; };
};
...//省略部分内容...
:wq                               //保存退出
[root@localhost ~]# cd /var/named/     //进入区域数据文件存放目录
[root@localhost named]# cp -p aaa.com.zone naaa.com.zone     //复制区域数据文件
[root@localhost named]# vim naaa.com.zone         //进入编辑新的区域数据文件
$TTL 1D 
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1 
www IN  A       192.168.144.143                //更改IP地址
~
:wq                            //保存退出
[root@localhost named]# cd /var/www/html/     //进入http服务站点
[root@localhost html]# mkdir aaa02     //创建新的站点目录
[root@localhost html]# cd aaa02/       //进入目录
[root@localhost aaa02]# vim index.html      //编辑默认主页文件

this is 143 aaa02 web

//编辑网页内容 :wq //保存退出 [root@localhost aaa02]# vim /etc/httpd/conf/httpd.conf //编辑http服务主配置文件 ...//省略部分内容... # prevent Apache from glomming onto all bound IP addresses. # Listen 192.168.144.137:80 Listen 192.168.144.143:80 //编辑监听新的IP地址 #Listen 80 ...//省略部分内容... :wq //保存退出 [root@localhost aaa02]# systemctl restart httpd //重启http服务 [root@localhost aaa02]# systemctl restart named //重启DNS服务

在win10客户机中验证基于IP地址建立的虚拟主机

CentOS 7中构建虚拟主机(实验篇)CentOS 7中构建虚拟主机(实验篇)

配置成功


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
经来泓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有