代码编织梦想

Apache配置虚拟主机

在一台Web服务器上,通过多个独立的IP地址、域名或端口号提供不同的Web站点。
基于IP地址的虚拟主机:
每个网站拥有不同的 IP 地址
通过访问服务器上不同的IP地址访问不同的网站
基于域名的虚拟主机:
所有的虚拟主机可以共享同一个IP地址
使用不同的域名来访问不同的网站
基于端口的虚拟主机:
所有的虚拟主机可以共享同一个IP地址
各虚拟主机之间通过不同的端口号进行区分

准备工作:

[root@Apache ~]# vim /usr/local/apache2/conf/htttpd.conf
  52 #Listen 80         # 将这行注释掉
220 #DocumentRoot "/usr/local/apache2/htdocs"        # 将这行注释掉

1. Apache基于IP的虚拟主机配置

第一步:使用ifconfig设置3个虚拟ip

[root@Apache ~]# ifconfig ens33:1 192.168.1.11/24
[root@Apache ~]# ifconfig ens33:2 192.168.1.12/24
[root@Apache ~]# ifconfig ens33:3 192.168.1.13/24

[root@Apache ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe14:1fb9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)
        RX packets 216515  bytes 207352525 (197.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 109646  bytes 23077100 (22.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

ens33:3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.13  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.11  test1.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.12  test2.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.13  test3.com" >> /etc/hosts

[root@Apache ~]# tail -3 /etc/hosts
192.168.1.11  test1.com
192.168.1.12  test2.com
192.168.1.13  test3.com

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.html

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir 11
[root@Apache ~]# mkdir 12
[root@Apache ~]# mkdir 13
[root@Apache ~]# echo "192.168.1.11" > 11/index.html
[root@Apache ~]# echo "192.168.1.12" > 12/index.html
[root@Apache ~]# echo "192.168.1.13" > 13/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf    --文件末尾加入以下配置
Listen 192.168.1.11:80
Listen 192.168.1.12:80
Listen 192.168.1.13:80
Include conf/vhost/*.conf            # 文件包含vhost目录下所有以.conf结尾的文件

第五步:编辑每个ip的配置文件

[root@Apache ~]# mkdir  /usr/local/apache2/conf/vhost
[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim test11.conf        --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.11:80>
      ServerName test11.com
    DocumentRoot /www/11
      <Directory "/www/11/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

参数介绍:

虚拟主机配置格式:
<VirtualHost 主机ip:端口>
配置内容
</VirtualHost>

指定虚拟主机使用的域名
ServerName 域名

指定虚拟主机的主目录
DocumentRoot 目录

虚拟目录的格式:
<Directory 目录的路径>
目录相关的配置参数和指令
</Directory>

Options Indexes FollowSymLinks --找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外

是否允许.htaccess文件覆盖httpd.conf文件中关于虚拟主机目录的配置。
AllowOverride None # 不使用
AllowOverride all # 使用

允许、拒绝所有访问指令
Require all granted # 允许
Require all denied # 拒绝

[root@Apache ~]# vim test12.conf          --这是第二台机器
<VirtualHost 192.168.1.12:80>
      ServerName test12.com
    DocumentRoot "/www/12"
      <Directory "/www/12/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test13.conf          --这是第三台机器
<VirtualHost 192.168.1.13:80>
      ServerName test13.com
    DocumentRoot "/www/13"
      <Directory "/www/13/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t        --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动Apache
检查虚拟主机是否运行
[root@Apache ~]# curl 192.168.1.11
192.168.1.11
[root@Apache ~]# curl 192.168.1.12
192.168.1.12
[root@Apache ~]# curl 192.168.1.13
192.168.1.13

2. Apache基于端口的虚拟主机配置

第一步:使用ifconfig设置1个虚拟ip

[root@Apache ~]# ifconfig ens33:4 192.168.1.14/24

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.14  test4.com" >> /etc/hosts

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.html

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir port
[root@Apache ~]# cd port
[root@Apache ~]# mkdir 6081
[root@Apache ~]# mkdir 7081
[root@Apache ~]# mkdir 9081
[root@Apache ~]# echo "port 6081" > 6081/index.html
[root@Apache ~]# echo "port 7081" > 7081/index.html
[root@Apache ~]# echo "port 9081" > 9081/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf      --文件末尾加入以下配置
Listen 192.168.1.14:6081
Listen 192.168.1.14:7081
Listen 192.168.1.14:9081
Include conf/vhost/*.conf

第五步:编辑每个端口的配置文件

[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim test14.6081.conf       --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.14:6081>
      ServerName test14.com
    DocumentRoot "/www/port/6081"
      <Directory "/www/port/6081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test14.7081.conf          --这是第二台机器
<VirtualHost 192.168.1.14:7081>
      ServerName test14.com
    DocumentRoot "/www/port/7081"
      <Directory "/www/port/7081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test14.9081.conf          --这是第三台机器
<VirtualHost 192.168.1.14:9081>
      ServerName test14.com
     DocumentRoot "/www/port/9081"
      <Directory "/data/port/9081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t              --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动apache
检查虚拟主机是否运行
[root@Apache ~]# curl 192.168.1.14:6081
port 6081
[root@Apache ~]# curl 192.168.1.14:7081
port 7081
[root@Apache ~]# curl 192.168.1.14:9081
port 9081

3. Apache基于域名的虚拟主机配置

第一步:使用ifconfig设置1个虚拟ip

[root@Apache ~]# ifconfig ens33:5 192.168.1.15/24

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.15  www.aa.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.15  www.bb.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.15  www.cc.com" >> /etc/hosts

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.html

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir www.aa.com
[root@Apache ~]# mkdir www.bb.com
[root@Apache ~]# mkdir www.cc.com
[root@Apache ~]# echo "www.aa.com" > www.aa.com/index.html
[root@Apache ~]# echo "www.bb.com" > www.bb.com/index.html
[root@Apache ~]# echo "www.cc.com" > www.cc.com/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf      --文件末尾加入以下配置
Listen 192.168.1.15:80
Include conf/vhost/*.conf

第五步:编辑每个域名的配置文件

[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim www.aa.com.conf        --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.aa.com
    DocumentRoot "/www/www.aa.com"
      <Directory "/www/www.aa.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim www.bb.com.conf          --这是第二台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.bb.com
    DocumentRoot "/www/www.bb.com"
      <Directory "/www/www.bb.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim www.cc.com.conf          --这是第三台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.cc.com
    DocumentRoot "/www/www.cc.com"
      <Directory "/www/www.cc.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t              --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动apache
检查虚拟主机是否运行
[root@Apache ~]# curl www.aa.com
www.aa.com
[root@Apache ~]# curl www.bb.com
www.bb.com
[root@Apache ~]# curl www.cc.com
www.cc.com

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_45120915/article/details/110357221

《6.socket服务端代码实现二》-爱代码爱编程

#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <stdlib.h> #include &

linux下设置文件的阻塞特性flags-爱代码爱编程

文件的阻塞特性: 阻塞:操作文件且资源不可得时,进程进入睡眠(挂起)状态 对于管道文件和普通文件来说,默认是阻塞的。 */ int main() { //创建无名管道 int fd[2]; pipe(fd); char buf[10]; bzero(buf,10); //将管道设置为非阻塞状态

Shell三剑客之sed-爱代码爱编程

目录 一、sed工具1.1 sed简介1.2 sed 命令常见用法二、用法示例2.1 输出符合条件的文本(p 表示正常输出)2.2 n表示不读取2.3 读取指定行以后的要用$2.4 读取行与grep对比2.5 查找关键字所在行 固定用法//2.6 删除符合条件的文本(d)2.7 替换符合条件的文本2.8 迁移符合条件的文本2.9 a模式后插2.10

使用Python搭建网关测试台架-爱代码爱编程

概述 网关(CGW)是智能化汽车核心的控制器之一,其承担车载网络通信的传输与转换,是不同总线数据的交互枢纽,用于CAN、LIN、Ethernet、FlexRay等总线的数据转发路由。 正式由于网关功能的特殊性,其测试方法也与其他控制器有一定的差异,各个协议在网关上的实现也有其他的特性。本文主要介绍如何使用一些基础的测试设备,搭建脚本完成网关的通讯测试,此

CentOS7安装jdk1.8并配置环境变量-爱代码爱编程

 1、创建目录 mkdir /usr/local/java/ 2、解压jdk至目录/usr/local/java/下 tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/local/java/   3、设置环境变量 vim /etc/profile   export JAVA_HOME=/usr/

Linux 进程及进程之间的通信机制——管道-爱代码爱编程

参考: LInux C编程从初学到精通 电子工业出版社 Linux 进程 Linux 进程简介 Linux是一个多用户多任务的操作系统,多用户是指多个用户可以在同一时间使用同一台计算机系统;多用户是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一个任务,操作系统管理着多个用户的请求和多个任务。 Linux系统中所有运行的东西

CentOS7 配置 Apache 和 Haproxy-爱代码爱编程

Haproxy配置 首先安装yum -y install haproxy 修改配置文件vi /etc/haproxy/haproxy.cfg 修改frontend main的端口,里边只留一行default_backend app 然后修改backend app-mainserver xxxx ip:port check 配置好后systemctl re

网站制作-LAMP环境(分离部署)-爱代码爱编程

LAMP 环境 两台Linux1:apache+php(IP:192.168.1.1)2:mysql(IP:192.168.1.2)配置 首先安装好apache 安装PHPrpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm rpm

Apache中间件安全-爱代码爱编程

安装httpd服务 yum -y install httpd 查看Apache模式 查看apache模块位置 切换到默认模块目录修改 cd /etc/httpd/conf.modules.d/ vim 00-mpm.conf 第六行添加注释最后一行去掉注释 重启apache查看模块 systemctl restart httpd http

Writeup-GKCTF-Misc题:Pokémon-爱代码爱编程

每次做Misc题都能给我带来一些意外的惊喜,没想到这次直接把口袋妖怪搬了出来 原题地址:https://buuoj.cn/challenges#[GKCTF2020]Pokémon 首先看一下hint 应该是要告诉我们本题是要老老实实玩游戏把附件下载下来,用gba模拟器打开游戏,熟悉的8bi

【CentOS Linux 7】实验6【web服务器搭建与管理】-爱代码爱编程

Linux系统及应用---调研报告【Linux CentOS 7】实验1【VMware安装、新建虚拟机;63个基础命令运行结果图】【Linux CentOS 7】实验2【Shell编程及应用】【Linux CentOS 7】实验3【用户组群管理、磁盘分区及文件系统管理】【Linux CentOS 7】实验4【Linux网络应用、Linux下C语言编程

kali启动apache和mysql服务-爱代码爱编程

kali启动apache和mysql服务 一、启动apache二、启动mysql三、查看运行状态 一、启动apache service apache2 start 二、启动mysql service mysql start 三、查看运行状态 service apache2 status service mysql