httpd服務器功能演示
- 一、虛擬主機配置
- 虛擬主機技術全景
- 虛擬主機目錄規范
- 1. 基于端口的虛擬主機(8080/8081)
- 2. 基于IP的虛擬主機(192.168.1.100/192.168.1.101)
- 3. 基于域名的虛擬主機(site1.com/site2.com)
- 二、網頁重定向配置
- 命令總結表格
- 功能作用詳解
- 1.虛擬主機類型對比
- 2. 虛擬主機配置要點
- 3. 重定向功能解析
一、虛擬主機配置
虛擬主機技術全景
虛擬主機目錄規范
/var/www/
├── site1.com
│ ├── public_html
│ ├── logs
│ └── cgi-bin
└── site2.com├── public_html├── logs└── tmp
1. 基于端口的虛擬主機(8080/8081)
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
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 ~]
[root@localhost ~]
[root@localhost ~]
2. 基于IP的虛擬主機(192.168.1.100/192.168.1.101)
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
<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 ~]
3. 基于域名的虛擬主機(site1.com/site2.com)
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
<VirtualHost *:80>ServerName site1.comDocumentRoot "/var/www/site1"
</VirtualHost><VirtualHost *:80>ServerName site2.comDocumentRoot "/var/www/site2"
</VirtualHost>
[root@localhost ~]
[root@localhost ~]
二、網頁重定向配置
HTTP 跳轉至 HTTPS
[root@localhost ~]
LoadModule rewrite_module modules/mod_rewrite.so
[root@localhost ~]
<VirtualHost *:80>ServerName site1.comRewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>[root@localhost ~]
命令總結表格
演示命令 | 功能描述 | 關鍵參數/文件 |
---|
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跳轉HTTPS | RewriteRule (.*) 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"
</VirtualHost>
<VirtualHost *:80>ServerName site1.comDocumentRoot "/var/www/site1"
</VirtualHost>
<Directory "/var/www/site1">Require all granted Options -Indexes
</Directory>
3. 重定向功能解析
RewriteEngine On
RewriteCond %{HTTPS} off # 檢測非HTTPS請求
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^old.com$ [NC]
RewriteRule ^(.*)$ http://new.com/$1 [R=301,L]