当前位置: 首页 > 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.lryc.cn/news/604755.html

相关文章:

  • uni-app webview 的message无法触发的解决方案
  • MacTex+Vscode数学建模排版
  • 字节跳动“扣子”(Coze)开源:AI智能体生态的技术革命
  • AI Compass前沿速览:可灵创意工坊、字节Coze StudioCoze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源
  • 添加捕捉吸附标识(使用QT+OpenGL开发三维CAD)
  • 【翻译】Label Studio——开源标注工具README.md
  • 2025年DDoS攻防战:六层防护体系构建业务“数字免疫”
  • ADA4622-2ARMZ-R7 ADI双通道精密运算放大器 ±0.25μV超低失调+0.1μV/°C温漂
  • K8s 备份与恢复利器:Velero 实战指南
  • click和touch事件触发顺序 糊里糊涂解决的奇怪bug
  • VUE -- 基础知识讲解(三)
  • 前端安全防护:XSS、CSRF与SQL注入漏洞深度解析与防御
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | 3dBackgroundBoxes(3D背景盒子组件)
  • 前端兼容性问题全面解决方案
  • Vue2-封装一个看起来像左右分布表格的表单组件
  • JetBrains Annotations:从入门到落地,彻底告别 NullPointerException
  • 2025年GEO服务商有哪些?——从技术到服务的专业分析
  • 2507C++,介绍名字对象
  • Java Stream核心:ReferencePipeline解析
  • 【WPS】邮件合并教程\Excel批量写入数据进Word模板
  • 滚珠导轨在电子制造中的流畅性优势
  • 新零售“实—虚—合”逻辑下的技术赋能与模式革新:基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的研究
  • 洛谷 P11230:[CSP-J 2024 T4] 接龙 ← 图论+动态规划
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十四天-准备面试项目(焦虑)-同学开始面试
  • 汽车免拆诊断案例 | 免拆诊断发动机起动困难故障2例
  • Linux730 tr:-d /-s;sort:-r,-n,-R,-o,-t,-k,-u;bash;cut:-d,-c;tee -a;uniq -c -i
  • VS Code中如何关闭Github Copilot
  • 深度学习-丢弃法 Dropout
  • MySQL索引和事务笔记
  • 开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放