当前位置: 首页 > news >正文

Apache虚拟主机三种配置实战

一、虚拟主机概述

目的:实现单台服务器部署多个独立站点

三种部署方式:

  1. 相同IP + 不同端口
  2. 不同IP + 相同端口
  3. 相同IP和端口 + 不同域名(FQDN)

示例目标:在服务器上部署 baidu 和 taobao 两个站点


方式1:相同IP + 不同端口

配置步骤:
#安装http插件
yum -y install httpd
#重启服务
systemctl restart httpd
systemctl enable httpd
#关闭selinux
setenforce 0
#进入www目录创建baidu和taobao
cd /var/www
mkdir baidu
mkdir taobao
#向两个站点里写入内容
echo baidu > baidu/index.html
echo taobao > taobao/index.html
1.复制虚拟主机模板
cp -p /usr/share/doc/httpd2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
2.修改配置文件
vim /etc/httpd/conf.d/httpd-vhosts.conf

配置内容:

# 全局监听端口(必须在VirtualHost之外)
Listen 80
Listen 8080<VirtualHost 192.168.100.20:80>DocumentRoot "/var/www/baidu"
</VirtualHost><VirtualHost 192.168.100.20:8080>DocumentRoot "/var/www/taobao"
</VirtualHost>
3.重启服务
systemctl restart httpd
systemctl enable httpd
4.防火墙配置
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#或者
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

方式2:不同IP + 相同端口

配置步骤:
1.添加辅助IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33

添加内容:

IPADDR1=192.168.100.200
PREFIX1=24

重启网络:

systemctl restart network
2.修改虚拟主机配置
<VirtualHost 192.16.100.20:80>DocumentRoot "/var/www/baidu"
</VirtualHost><VirtualHost 192.168.100.200:80>DocumentRoot "/var/www/taobao"
</VirtualHost>
3.重启服务
systemctl restart httpd
systemctl enable httpd
4.防火墙配置
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#或者
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

方式3:相同IP/端口 + 不同域名

域名规划:

  • baidu → baidu.example.com → 172.16.30.20:80
  • taobao → taobao.example.com → 172.16.30.20:80
配置步骤:
1.DNS服务器配置
vim /var/named/example.com.zone

添加记录:

baidu.example.com.   IN  A  192.168.100.20
taobao.example.com.  IN  A  192.168.100.20

重启DNS服务:

systemctl restart named
2.修改虚拟主机配置
# 启用名称虚拟主机
NameVirtualHost *:80<VirtualHost 192.168.100.20:80>DocumentRoot "/var/www/baidu"ServerName baidu.example.com# 建议添加以下配置防止未匹配域名访问到错误站点ServerAlias www.baidu.example.com
</VirtualHost><VirtualHost 192.168.100.20:80>DocumentRoot "/var/www/taobao"ServerName taobao.example.comServerAlias www.taobao.example.com
</VirtualHost>
3.重启服务
systemctl restart httpd
systemctl enable httpd
4.防火墙配置
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#或者
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

关键说明:

  1. 端口监听位置
    Listen指令必须放在VirtualHost外部(全局配置区域)

  2. DNS记录格式
    域名解析需使用完整FQDN(如baidu.example.com.),结尾点号不能省略

  3. 名称虚拟主机声明
    基于域名的虚拟主机需要NameVirtualHost *:80声明(Apache 2.2必需,2.4可选但建议保留)

  4. 默认站点防护
    添加_default_虚拟主机块可防止未匹配域名的请求访问到第一个站点:

    <VirtualHost _default_:80>DocumentRoot /var/www/default# 或直接拒绝访问# Redirect 403 /
    </VirtualHost>
    
  5. 防火墙优化
    方式2/3只需开放HTTP服务(80端口),无需单独处理端口

http://www.lryc.cn/news/619205.html

相关文章:

  • 运维学习Day22——Anisible自动化与基本使用
  • JavaEE 初阶第十八期:叩开网络世界的大门
  • 随身WIFI每个月需要交钱吗?流量卡还是随身WIFI哪个更好用?正规随身WIFI品牌有哪些?谁才是真性价比之王?
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • Linux文件系统:从虚拟接口到物理实现的架构解析
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 【ROS2】ROS2 基础学习教程 以lerobot-so100为例
  • 【前端:Html】--3.进阶:图形
  • 基于RAII的智能指针原理和模拟实现智能指针
  • Python函数篇:从零到精通
  • 能刷java题的网站
  • C语言—数组和指针练习题合集(二)
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 安卓主题定制实践:17.45MB轻量级主题引擎技术解析
  • python --- 基础语法(1)
  • 为什么我换了项目管理软件?
  • 简单的双向循环链表实现与使用指南
  • Visual Studio中VC++目录、C/C++和链接器配置的区别与最佳实践
  • 无人机智能返航模块技术分析
  • 【前端Vue】如何在log-viewer组件中添加搜索定位功能
  • C语言中关于普通变量和指针变量、结构体包含子结构体或包含结构体指针的一些思考
  • 调整UOS在VMware中的分辨率
  • 广东省省考备考(第七十四天8.12)——资料分析、数量关系(40%-70%正确率的题目)
  • MySQL 数据库表操作与查询实战案例
  • 猫头虎AI分享|智谱直播开源其最新视觉模型:GLM-4.5V,多模态,支持图像、视频输入
  • 一个删掉360安全卫士的方法——Win+R
  • 【代码随想录day 17】 力扣 98.验证二叉搜索树
  • 计算机视觉(6)-自动驾驶感知方案对比
  • 偶遇冰狐智能辅助的录音
  • 【oracle闪回查询】记录字段短时间被修改的记录