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.pswp.cn/news/918596.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/918596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】04 基础入门 - 自动配置原理入门:依赖管理 + 自动配置

文章目录前言一、Spring Boot Maven项目POM文件解析1. 基础项目信息2. 父项目继承3. 依赖管理4. 构建配置5. 属性配置Spring Boot特性体现典型Spring Boot项目特点二、依赖管理1、父项目做依赖管理无需关注版本号&#xff0c;自动版本仲裁修改自动仲裁的版本官网文档2、依赖项引…

机器学习—— TF-IDF文本特征提取评估权重 + Jieba 库进行分词(以《红楼梦》为例)

使用 Jieba 库进行 TF-IDF 关键词提取&#xff08;以《红楼梦》为例&#xff09;在中文文本分析中&#xff0c;TF-IDF&#xff08;Term Frequency - Inverse Document Frequency&#xff09; 是最常用的关键词提取方法之一。它通过评估词在单个文档中的出现频率和在所有文档中的…

Kotlin语法整理

Kotlin语法整理 Kotlin语法整理 一、基本数据类型 共8种 二、变量的声明三、条件 1. if…else if…else语句2. when 语句 四、循环 1. while 语句2. do…while 语句3. for 语句4. repeat 语句5. break 语句6. continue 语句 五、数组 1. 创建元素未初始化的数组2. 创建元素初始…

跨平台低延迟的RTMP推流播放在无纸化会议与智慧教室的技术设计和架构实践

✳️ 引言&#xff1a;让每一块屏幕“同频”的核心技术 无纸化会议与智慧教室&#xff0c;正在从“辅助工具”走向“核心基础设施”&#xff0c;成为政企数字化与教育信息化建设的标配。它们的核心诉求并不只是替代纸质文档或黑板&#xff0c;而是要在多终端、多地点、多网络环…

最优扩展大型语言模型测试时计算量可能比扩展模型参数更有效

摘要 通过增加测试时计算量使大型语言模型&#xff08;LLMs&#xff09;提升输出效果&#xff0c;是构建能基于开放自然语言自主改进的通用智能体的重要步骤。本文研究LLMs推理阶段计算量的扩展规律&#xff0c;重点回答以下问题&#xff1a;若允许LLM使用固定但可观的推理阶段…

GPT5评测对比与使用

经过长达一年的技术迭代&#xff0c;OpenAI正式推出GPT-5系列模型&#xff0c;包含GPT-5&#xff08;标准版&#xff09;、GPT-5-mini&#xff08;轻量版&#xff09;和GPT-5-nano&#xff08;极简版&#xff09;三个版本&#xff0c;定价策略保持统一。本次升级在性能、效率与…

Git与CI/CD相关知识点总结

Git与CI/CD相关知识点总结 1. Git对象模型与存储机制 1.1 Git对象类型 Commit对象&#xff1a;包含提交信息、作者、时间、父commit引用、树对象引用Tree对象&#xff1a;描述目录结构和文件引用Blob对象&#xff1a;实际的文件内容 1.2 存储机制特点 增量存储&#xff1a;每次…

CS2服务器是何方神圣

CS2服务器是何方神圣CS2「子刷新频率」深度拆解&#xff1a;从官方宣言到“吞子弹”真相00 先给结论01 官方原话到底说了什么02 一条时间线看懂「Sub-tick」03 技术解剖&#xff1a;Sub-tick 的实现细节3.1 输入包结构&#xff08;Valve 公开源码节选&#xff09;3.2 连续积分&…

Docker守护进程安全加固在香港VPS环境的操作标准

Docker守护进程安全加固在香港vps环境的操作标准随着云计算技术的普及&#xff0c;Docker守护进程安全加固已成为香港VPS环境中不可忽视的重要环节。本文将系统性地介绍如何通过配置优化、访问控制、网络隔离等维度&#xff0c;在香港虚拟私有服务器上建立符合企业级安全标准的…

Rust 项目编译故障排查:从 ‘onnxruntime‘ 链接失败到 ‘#![feature]‘ 工具链不兼容错误

Rust 项目编译故障排查报告&#xff1a;从原生库链接失败到工具链不兼容 场景: 编译一个本地 Rust 项目时遇到连续的编译错误。一、 故障现象概述 在对一个 Rust 项目执行 cargo build 命令时&#xff0c;先后遇到了两个不同性质的编译错误&#xff0c;导致编译流程中断。初始错…

K8s 1.32.6版本部署文档

主机配置 作用IP地址操作系统配置关键组件k8s-master172.16.1.30Rocky Linux release 94C/4G/50GBkube-apiserver, etcd,dockerk8s-node1172.16.1.31Rocky Linux release94C/4G/50GBkubelet, kube-proxy,dockerk8s-node2172.16.1.32Rocky Linux release 94C/4G/50GBkubelet, k…

第十六届蓝桥杯大赛青少组 C++ 省赛真题解析(2025年8月10日)

第一题 题目:运行以下程序,输出的结果是()。 #include<bits/stdc++.h> using namespace std; int func(int y) { y -= 5; cout << "x"; return 0; } int main() { int x = 10, y = 5; if (x > y || func(y)) cout &…

PID 控制算法 | stm32 直流电机控制

注&#xff1a;本文为 “PID 算法 | stm32 直流电机控制” 相关合辑。 图片清晰度受引文原图所限。 略作重排&#xff0c;未全校去重。 如有内容异常&#xff0c;请看原文。 STM32—PID 控制在直流电机中的应用 Aspirant-GQ 于 2020-04-28 23:23:39 发布 一、PID 控制算法 1…

高效的Python课表生成器

在日常的学校管理中,排课表是一项繁琐而又必须完成的工作。特别是对于那些没有自动化排课系统的学校来说,手动安排学生的课程不仅耗时,而且容易出错。最近,我接到了一项任务,需要为学校的学生安排非选修课的课程表。以下是我使用Python编写的解决方案,并结合了一些实际的…

深度学习-卷积神经网络-NIN

网络结构是卷积神经网络&#xff08;CNN&#xff09;发展的关键。其中&#xff0c;网络结构的改进至关重要。本文将介绍一种具有创新意义的卷积神经网络——NIN&#xff08;Network in Network&#xff09;。LeNet、AlexNet和VGG都有一个共同的设计模式&#xff1a;通过一系列的…

Java-96 深入浅出 MySQL 索引与排序机制详解与优化实践 Filesort

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布&#xff01;“快的…

MLAG双活网络妙招:BGP + 静态VRRP实现智能负载均衡

引言 在现代数据中心和企业网络架构中&#xff0c;高可用性和负载均衡是核心需求。MLAG&#xff08;Multi-Chassis Link Aggregation&#xff09;技术结合BGP和静态VRRP的解决方案&#xff0c;为网络工程师提供了一种高效实现双活网络负载均衡的妙招。本文将深入探讨这一技术组…

如何构建PHP表单页面及验证相关原理(PHP基础)

文章目录PHP表单 - 必需字段PHP - 必需字段PHP - 显示错误信息总结PHP表单 - 验证邮件和URLPHP - 验证名称PHP - 验证邮件验证URLPHP 完整表单实例 PHP表单 - 必需字段 该章内容将介绍如何设置表单必需字段及错误信息 PHP - 必需字段 我们首先给出一个表的验证规则&#xff0c;…

API如何集成Web搜索功能:原理、实践与最佳选型

API如何集成Web搜索功能&#xff1a;原理、实践与最佳选型 在现代智能应用开发中&#xff0c;模型生成结果往往需要融合最新的互联网信息。通过集成Web搜索工具&#xff0c;模型可以在生成响应前主动检索网络&#xff0c;获取实时数据。这一能力极大提升了智能系统的准确性和时…

Spring Boot项目中调用第三方接口

目录 步骤1: 添加依赖 步骤2: 配置HTTP客户端 配置RestTemplate 配置WebClient 步骤3: 在Service层调用接口 使用RestTemplate示例 使用WebClient示例 步骤4: 在Controller层调用Service 注意事项 总结 Spring Boot项目中调用第三方接口 在Spring Boot项目中调用第三…