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

三十二、【Linux网站服务器】搭建httpd服务器演示虚拟主机配置、网页重定向功能

httpd服务器功能演示

      • 一、虚拟主机配置
      • 虚拟主机技术全景
        • 虚拟主机目录规范
        • 1. 基于端口的虚拟主机(8080/8081)
        • 2. 基于IP的虚拟主机(192.168.1.100/192.168.1.101)
        • 3. 基于域名的虚拟主机(site1.com/site2.com)
      • 二、网页重定向配置
        • HTTP 跳转至 HTTPS
      • 命令总结表格
      • 功能作用详解
      • 1.虚拟主机类型对比
      • 2. 虚拟主机配置要点
      • 3. 重定向功能解析

一、虚拟主机配置

虚拟主机技术全景

端口号
IP地址
域名
客户端请求
识别方式
基于端口的虚拟主机
基于IP的虚拟主机
基于域名的虚拟主机
响应8080/8081端口请求
响应不同IP的请求
响应不同域名的请求
虚拟主机目录规范
/var/www/
├── site1.com
│   ├── public_html    # 网站根目录
│   ├── logs            # 专属日志
│   └── cgi-bin         # CGI脚本
└── site2.com├── public_html├── logs└── tmp             # 临时文件
1. 基于端口的虚拟主机(8080/8081)
# 创建网站目录
[root@localhost ~]# mkdir -p /var/www/{port8080,port8081}# 写入测试页面
[root@localhost ~]# echo "Port 8080 Home" > /var/www/port8080/index.html
[root@localhost ~]# echo "Port 8081 Home" > /var/www/port8081/index.html# 创建配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/port-vhost.conf
# 添加以下内容👇
Listen 8080
Listen 8081<VirtualHost *:8080>DocumentRoot "/var/www/port8080"ErrorLog "/var/log/httpd/port8080-error.log"
</VirtualHost><VirtualHost *:8081>DocumentRoot "/var/www/port8081"ErrorLog "/var/log/httpd/port8081-error.log"
</VirtualHost># 开放防火墙端口
[root@localhost ~]# firewall-cmd --permanent --add-port={8080,8081}/tcp
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# systemctl restart httpd
2. 基于IP的虚拟主机(192.168.1.100/192.168.1.101)
# 添加临时IP
[root@localhost ~]# ip addr add 192.168.1.101/24 dev eth0# 创建网站目录
[root@localhost ~]# mkdir -p /var/www/{ip100,ip101}
[root@localhost ~]# echo "IP 192.168.1.100" > /var/www/ip100/index.html
[root@localhost ~]# echo "IP 192.168.1.101" > /var/www/ip101/index.html# 创建配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/ip-vhost.conf
# 添加以下内容👇
<VirtualHost 192.168.1.100:80>DocumentRoot "/var/www/ip100"ServerName 192.168.1.100
</VirtualHost><VirtualHost 192.168.1.101:80>DocumentRoot "/var/www/ip101"ServerName 192.168.1.101
</VirtualHost>[root@localhost ~]# systemctl restart httpd
3. 基于域名的虚拟主机(site1.com/site2.com)
# 创建网站目录
[root@localhost ~]# mkdir -p /var/www/{site1,site2}
[root@localhost ~]# echo "Site1 Home" > /var/www/site1/index.html
[root@localhost ~]# echo "Site2 Home" > /var/www/site2/index.html# 创建配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/domain-vhost.conf
# 添加以下内容👇
<VirtualHost *:80>ServerName site1.comDocumentRoot "/var/www/site1"
</VirtualHost><VirtualHost *:80>ServerName site2.comDocumentRoot "/var/www/site2"
</VirtualHost># 配置本地DNS解析
[root@localhost ~]# echo "127.0.0.1 site1.com site2.com" >> /etc/hosts
[root@localhost ~]# systemctl restart httpd

二、网页重定向配置

HTTP 跳转至 HTTPS
# 启用重写模块
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
# 取消注释👇
LoadModule rewrite_module modules/mod_rewrite.so# 配置重定向规则
[root@localhost ~]# vi /etc/httpd/conf.d/redirect.conf
# 添加以下内容👇
<VirtualHost *:80>ServerName site1.comRewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>[root@localhost ~]# systemctl restart httpd

命令总结表格

演示命令功能描述关键参数/文件
mkdir -p /var/www/{port8080,port8081}创建端口虚拟主机目录-p 递归创建目录
vi /etc/httpd/conf.d/port-vhost.conf配置端口虚拟主机Listen 8080 定义监听端口
ip addr add 192.168.1.101/24 dev eth0添加临时IP地址dev eth0 指定网卡
vi /etc/httpd/conf.d/ip-vhost.conf配置IP虚拟主机<VirtualHost 192.168.1.100:80> IP绑定
echo "127.0.0.1 site1.com" >> /etc/hosts本地DNS解析/etc/hosts 域名映射
vi /etc/httpd/conf.d/domain-vhost.conf配置域名虚拟主机ServerName site1.com 域名标识
vi /etc/httpd/conf.d/redirect.conf配置HTTP跳转HTTPSRewriteRule (.*) https://... [R=301,L] 301重定向

功能作用详解

1.虚拟主机类型对比

类型标识方式适用场景配置核心指令
基于端口不同端口(如 80/8080)测试环境多应用隔离Listen 8080 + <VirtualHost *:8080>
基于IP不同IP地址多IP服务器托管独立网站<VirtualHost 192.168.1.100:80>
基于域名不同域名(如 site1.com)单IP多域名网站托管(生产常用)ServerName site1.com

2. 虚拟主机配置要点

# 端口虚拟主机示例
Listen 8080
<VirtualHost *:8080>DocumentRoot "/var/www/port8080"# 必须添加 Listen 指令[1,6](@ref)
</VirtualHost># 域名虚拟主机示例
<VirtualHost *:80>ServerName site1.comDocumentRoot "/var/www/site1"# 需确保域名解析到服务器IP[8](@ref)
</VirtualHost>
  • 目录权限控制:
<Directory "/var/www/site1">Require all granted     # 允许所有访问Options -Indexes        # 禁止目录列表[7](@ref)
</Directory>

3. 重定向功能解析

  • 强制HTTPS跳转
RewriteEngine On
RewriteCond %{HTTPS} off          # 检测非HTTPS请求
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • 域名A跳转到域名B
RewriteCond %{HTTP_HOST} ^old.com$ [NC]
RewriteRule ^(.*)$ http://new.com/$1 [R=301,L]
http://www.dtcms.com/a/305871.html

相关文章:

  • STM32学习记录--Day3
  • ubuntu编译opendds
  • STM32CubeMX 生成时钟获取函数的分析
  • OmniParser:提升工作效率的视觉界面解析工具
  • react+ant design怎么样式穿透-tooltip怎么去掉箭头
  • 地下停车场照明节能:技术方案与价值重构
  • day7 替换数字那道题需要多写几次
  • 容器与虚拟机的本质差异:从资源隔离到网络存储机制
  • InfluxDB 3 数据库命名与创建全攻略:规范、限制与实战指南
  • Linux 进程管理与计划任务详解
  • 在 CentOS 系统上安装 Docker
  • ComfyUI自定义图片导出路径
  • SpringBoot 2.7.18 升级 3.4.6
  • PHP语法高级篇(七):MySQL数据库
  • 具身智能 自动驾驶相关岗位的技术栈与能力地图
  • 微信小程序中实现页面跳转的方法
  • 爬虫验证码处理:ddddocr 的详细使用(通用验证码识别OCR pypi版)
  • 第2章 cmd命令基础:常用基础命令(2)
  • 数据驱动的自动驾驶虚拟测试方法
  • 【同济大学】双速率自动驾驶架构LeAD:端到端+LLM,CARLA实测93%路线完成率,性能SOTA!
  • 深入浅出设计模式——创建型模式之原型模式 Prototype
  • 【MySQL 数据库】MySQL索引特性(二)页目录(B和B+树)(非)聚簇索引 索引操作
  • 李宏毅2025《机器学习》-第九讲:大型语言模型评测的困境与“古德哈特定律”**
  • java面向对象高级02——单例类(设计模式)
  • 数据分析师进阶——95页零售相关数据分析【附全文阅读】
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论IP地图可视化分析实现
  • 语言模型的评估指标整理
  • Python设计模式详解:策略模式(Strategy Pattern)实战指南
  • LRU (Least Recently Used) 缓存实现及原理讲解
  • Ubuntu22.04中搭建GN编译环境