虚拟主机配置概述
虚拟主机技术允许在单台服务器上通过不同域名、IP或端口部署多个独立网站。基于域名的虚拟主机通过server_name
指令区分访问请求,适用于对外服务网站;基于IP的虚拟主机则通过绑定多个IP地址实现服务隔离,常用于特殊业务场景。两种方式均可通过Nginx或Apache等Web服务器实现配置。
基于域名的虚拟主机配置
在Nginx配置文件中创建多个server
块,示例如下:
server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.html; server { listen 80; server_name test.com www.test.com; root /var/www/test; index index.html;
每个server
块需指定独立域名和网站根目录,通过server_name
字段进行请求分发。需确保DNS解析已将域名指向服务器IP。
基于IP的虚拟主机配置
为服务器绑定多个IP地址后,配置步骤如下:
- 使用
ip addr add 192.168.1.2/24 dev eth0
添加辅助IP - 在Nginx配置中指定监听IP:
server { listen 192.168.1.1:80; root /var/www/ip1; server { listen 192.168.1.2:80; root /var/www/ip2;
该方式要求客户端直接通过不同IP地址访问,适用于无需域名解析的内部系统。
域名与IP混合配置方案
复合配置示例同时使用域名和IP进行区分:
server { listen 192.168.1.1:80; server_name a.com; root /var/www/a; server { listen 192.168.1.2:80; server_name b.com; root /var/www/b;
此方案可实现不同IP+域名的组合式访问控制,增强服务隔离性。
配置验证与测试方法
完成配置后需执行:
- 运行
nginx -t
检查语法错误 - 修改本地hosts文件添加测试解析记录(Windows路径:
C:\Windows\System32\drivers\etc\hosts
) - 使用
curl -H "Host:example.com" http://server_ip
模拟域名请求
结论:基于域名的配置更适合多网站托管场景,而基于IP的方式适用于特殊网络环境。建议优先使用域名虚拟主机方案,通过DNS解析实现灵活管理。