基于linux搭建apache服务后,怎么构建web虚拟主机?(代码片段)

author author     2022-12-08     416

关键词:

虚拟web主机指的是在同一台服务器中运行多个web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”web主机,通过虚拟web主机服务可以充分利用服务器的硬件资源。

使用httpd可以非常方便的去搭建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。httpd支持的虚拟主机类型有这么三种(与Windows 的IIS服务一样):

1、相同IP、端口号、不同域名的虚拟主机;

2、相同IP、不同端口号的虚拟主机;

3、不同IP、相同端口号的虚拟主机;

大多数运维人员在搭建虚拟主机时,应该都是采用第一种方案,基于不同域名来做虚拟主机,这也是最人性化的一种方案。

一、开始搭建基于域名的虚拟主机:

1、为虚拟主机提供域名解析

安装DNS服务的参考博文:https://blog.51cto.com/14154700/2357252 ,若对DNS服务的配置不太熟悉,建议参考博文链接去搭建DNS服务,而不建议参考下面的内容(没解释那么详细):

[[email protected] /]# vim /etc/named.conf              #named服务器主配置文件

                  .....................           #省略部分内容

zone "test1.com" in                                           
        type master;
        file "test1.com.zone";
;

zone "test2.com" in 
        type master;
        file "test2.com.zone";
;

[[email protected] /]# vim /var/named/test1.com.zone             #test1.com区域配置文件

              ......................               #省略部分内容

        in      ns      www.test1.com.
www     in      a       192.168.1.1

[[email protected] /]# vim /var/named/test2.com.zone               #test2.com区域配置文件

              ......................                  #省略部分内容

        in      ns      www.test2.com.
www     in      a       192.168.1.1

[[email protected] named]# systemctl start  named              #启动DNS服务

2、为虚拟主机准备网页文档

为每个虚拟web主机准备网站目录及网页文档。为了方便测试,分别为每个虚拟web主机提供包含不同的首页文件:


[[email protected] named]# mkdir -p /var/www/test1com
[[email protected] named]# mkdir -p /var/www/test2com
[[email protected] named]# echo "<h1>www.test1.com</h1>" > /var/www/test1com/index.html
[[email protected] named]# echo "<h1>www.test2.com</h1>" > /var/www/test2com/index.html

希望上述操作大家可以看懂在干什么吧,懒得解释了。

3、添加虚拟主机配置

[[email protected] named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf               #创建独立的配置文件
该文件默认存在)

   .....................               #省略部分内容

#设置test1虚拟站点区域

<VirtualHost *:80>             #配置监听地址及端口号,*代表任意地址            
    ServerAdmin [email protected]               #设置服务器管理员的邮箱,当服务异常时,
        向该邮箱发送消息。该行也可删除。
    DocumentRoot "/var/www/test1com"            #设置网站根目录
    ServerName www.test1.com                         #配置域名
    ErrorLog "logs/test1-error_log"                        #错误日志存放在/usr/local/httpd/logs
    CustomLog "logs/test1-access_log" common             #访问记录日志存放处
    <directory "/var/www">              #设置目录访问权限
    require all granted
    </directory>
</VirtualHost>

# 设置test2虚拟站点区域
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/test2com"
    ServerName www.test2.com
    ErrorLog "logs/test2-error_log"
    CustomLog "logs/test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

[[email protected] named]# vim /usr/local/httpd/conf/httpd.conf         #修改网站主配置文件

         ............... #进入主配置文件后,在末行模式下执行   /vhosts  ,定位到下面该行

Include conf/extra/httpd-vhosts.conf           #删除该行开头的#号,以便加载独立的配置文件     
[[email protected] named]# systemctl restart httpd                #重启服务使配置生效,
我把httpd添加成了系统服务,
才可使用systemctl命令来控制httpd服务,若没添加为系统服务,
还是老老实实的使用服务自带的控制工具吧。

4、在客户机中访问虚拟web主机

验证吧,结果如下:

技术图片

技术图片

齐活,基于不同域名的虚拟主机至此就做完了。

二、基于IP地址的虚拟主机:

(十万个不想接着往下写了,因为接下来的内容了解即可,不会用到的,不过呢.....为了以防万一,还是简单写一下吧)

注意,每一种方式之间毫无任何关联,千万别把基于IP地址的虚拟主机和基于域名的搞混了

[[email protected] named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf      #编辑子配置文件
         ..............
<VirtualHost 192.168.1.1:80>                 #配置监听地址192.168.1.10
    ServerAdmin [email protected]
    DocumentRoot "/var/www/test1com"
    ErrorLog "test1-error_log"
    CustomLog "test1-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

<VirtualHost 192.168.1.10:80>                 #配置监听地址为192.168.1.10
    ServerAdmin [email protected]
    DocumentRoot "/var/www/test2com"
    ErrorLog "test2-error_log"
    CustomLog "test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

[[email protected] named]# vim /usr/local/httpd/conf/httpd.conf          
                ......................             
Include conf/extra/httpd-vhosts.conf            #加载独立的配置文件

[[email protected] named]# systemctl restart httpd            #重启httpd服务

客户机访问:

技术图片

技术图片

二、基于端口的虚拟主机:

[[email protected] named]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf      #编辑子配置文件

<VirtualHost 192.168.1.1:80>                     #配置监听端口号为80
    ServerAdmin [email protected]
    DocumentRoot "/var/www/test1com"                       #正常访问的网站目录
    ErrorLog "test1-error_log"
    CustomLog "test1-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

<VirtualHost 192.168.1.1:8000>                     #配置监听端口号为8000
    ServerAdmin [email protected]
    DocumentRoot "/var/www/test2com"               #后台管理系统的网站目录
    ErrorLog "test2-error_log"
    CustomLog "test2-access_log" common
    <directory "/var/www">
    require all granted
    </directory>
</VirtualHost>

listen 8000                  #监听8000,由于80端口默认监听,所以不用写listen  80,写上会报错

[[email protected] named]# vim /usr/local/httpd/conf/httpd.conf          
                ......................             
Include conf/extra/httpd-vhosts.conf            #加载独立的配置文件

[[email protected] named]# systemctl restart httpd            #重启httpd服务

客户机访问:
技术图片

注意:在访问时老实点输入:http://192.168.1.1:8000。不输入“http://”的话访问不到。
技术图片

docker基于php:7.2-apache搭建微擎网站,及gd扩展开启方法-白又白的个人空间-oschina

原文:Docker基于php:7.2-apache搭建微擎网站,及GD扩展开启方法-白又白的个人空间-OSCHINA 下载微擎源码http://s.we7.cc/store-static-install.html下载稳定离线版本解压至文件夹:/var/www/we7_test/webdocker构建php:7.4-apache容器dockerrun-d-p8801:80--namew... 查看详情

基于centos7搭建apache网站后的访问控制配置详解(代码片段)

...通过Require配置项,来对客户端进行一些访问限制,可以基于IP地址、网段、主机名或域名。使用名称“all”时表示任意地址。安装apache服务的参考博文:https://blog.51cto.com/14154700/23911141、客户 查看详情

基于华为云轻松搭建属于自己的网站(linux,apache,mysql,php)(代码片段)

前言 本文使用华为云服务,向大家搭建属于自己的网站,搭建过程会详细介绍。搭建网站的过程亲自走了3遍,确认没问题才写这篇博客的,大家放心地根据步骤流程一步一步。如果大家担心自己能不能搭建成功&... 查看详情

linux基于lamp架构搭建个人论坛网站

一、前言什么是LAMP?简单的说就是​​Linux​​+​​Apache​​+​​MySQL​​+​​PHP​​这是一个常规的Web 服务器环境解决方案,使用其首字母缩写“LAMP”来引用。它是一个用于创建和管理Web应用程序的开源开发平台。Linux... 查看详情

有个技术的问题想咨询下啊,就是在linux下我搭建了svn服务器,问题是客户端怎么自己修改用户的密码呢?

有个技术的问题想咨询下啊,就是在linux下我搭建了svn服务器,问题是客户端怎么自己修改用户的密码呢?如果是用CollabnetSVNEdge等集成安装包架设的SVN服务器,一般都自带了控制台,用户可以用自己帐号登录控制台后修改密码如... 查看详情

基于腾讯云的discuz论坛搭建

准备LAMP环境 LAMP是Linux、Apache、MySQL和PHP的缩写,是Discuz论坛系统依赖的基础运行环境。我们先来准备LAMP环境 安装MySQL使用 yum 安装MySQL:yuminstallmysql-server-y安装完成后,启动MySQL服务:servicemysqldrestart使用mysql默认... 查看详情

linux搭建apache(httpd)内网访问正常,外网无法访问(精华帖)

参考技术A大家好,我是「Bigder」Linux搭建Apache(httpd)后内网访问正常,外网无法访问。网上资料找了几遍,汇总后关键的就是这几步。欢迎分享给需要的你~一、验证服务本身是否正常linux命令行,输入指令:curlhttp://127.0.0.1/,... 查看详情

linux怎么搭建http服务

参考技术A1、安装ftp服务端,方便你从客户端上传文件。linux上一般安装vsftp.VSFTP的软件安装包是:vsftpd-2.2.2-12.el6_5.1.i686.rpm查询:#rpm-qvsftpd安装:#rpm-ivhvsftpd-2.2.2-12.el6_5.1.i686.rpm或者直接yuminstallvsftpd启动、停止及重启VSFTP的命令:... 查看详情

搭建lamp

...护 (3)Apache开源的web服务器,使用量最多的web服务器,基于Http协议发布web静态网页,    & 查看详情

linux搭建apache服务个人静态页面

(1)把镜像挂载到/media/cdrom(2)配置Yum源文件(3)安装Apache服务程序httpd(4)开始httpd服务,并设置成开机自启(5)在浏览器输入?http://127.0.0.1?就可以看到web的默认页面(6)vi/etc/httpd/conf.d/userdir.conf在userdir.conf文件中注释掉UserDirdisabled去... 查看详情

如何在linux下搭建apache服务器

  工具:  Linux  apache  方法:删除Linux系统自身的apache服务器。查看GCC有没有安装进行apache的解压安装apachemake指令:make install配置和开启apache,访问测试参考技术A1删除Linux系统本身自带有apache服务器。2查看系统是否已... 查看详情

spark编程环境搭建

基于IntellijIDEA搭建Spark开发环境搭基于IntellijIDEA搭建Spark开发环境搭——参考文档●参考文档http://spark.apache.org/docs/latest/programming-guide.html●操作步骤a)创建maven项目b)引入依赖(Spark依赖、打包插件等等)基于IntellijIDEA搭建Spark开发... 查看详情

svn———搭建及配置

...在linux下。  svn服务器常用的有两种运行方式:独立和基于apache (也可基于nginx等web服务)  svn客户端是tortoisesvn作用:  在一台服务器上 查看详情

基于dolphindb搭建微服务的springboot项目

SpringBoot是一个基于Spring的快速开发框架,也是SpringCloud构建微服务分布式系统的基础设施。本文主要介绍如何通过SpringBoot快速搭建DolphinDB微服务,并且基于Mybatis操作DolphinDB数据库。本项目实现了物联网中的一个典型场景:终端... 查看详情

linux—搭建apache(httpd)服务(代码片段)

1、httpd简介?http是Apache超文本传输协议服务器的主程序。它是一个独立的后台进程,能够处理请求的子进程和线程。http常用用的两个版本是httpd-2.2和httpd-2.4CentOS6系列的默认httpd版本是httpd-2.2版本的rpm包CentOS7系列的默认ht... 查看详情

开发环境——基于rhel6.8开发环境的搭建

开发环境——基于RHEL6.8开发环境的搭建    本文讲述了基于RHEL6.8操作系统搭建开发环境,主要安装了GCC4.9.3、Qt5.7、Apache2.4.25、MySQL5.6.35。本文同时适用于在Linux主机无互联网环境下搭建开发环境,只需要将所需安... 查看详情

搭建apacheftp服务器,最后说是建一个bat文件,里面输入windows下的命令请问linux下怎么输入命令

cdE:\ftp_server\apache-ftpserver-1.0.0bin/ftpd.batres/conf/my-ftpd-typical.xml我想知道在linux里面应该建立一个什么格式的文件,里面输入什么我用的是apache-ftpserver-1.0.0参考技术A……Linux基本都自带apache和ftp服务器程序了,你没事还要另装... 查看详情

怎么配置gitlabgitlab

参考技术AGitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器... 查看详情