上一篇                     
               
			  nginx配置虚拟主机有哪三种方法?
- 虚拟主机
- 2025-06-12
- 4694
 nginx配置虚拟主机主要有三种方式:基于不同端口(同一IP)、基于不同IP地址(同一端口)、基于不同域名(同一IP和端口),核心是通过在配置文件中定义多个
 
 
server块实现。
虚拟主机的作用与重要性
虚拟主机(Virtual Host)允许在单一服务器上运行多个网站或应用,通过不同标识(如域名、IP、端口)区分访问请求,Nginx 作为高性能 Web 服务器,灵活支持虚拟主机配置,能显著节省硬件成本并提升资源利用率,以下是三种主流配置方法,附详细操作指南和场景建议。
基于域名(Server Name)
原理:通过客户端请求中的 Host 头字段匹配不同域名,指向对应的网站目录。
适用场景:单服务器托管多个独立域名的网站(最常见)。
配置示例: 
# 网站1:example.com
server {
    listen 80;                  # 监听80端口
    server_name example.com;    # 绑定域名
    root /var/www/example;      # 网站根目录
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}
# 网站2:test.com
server {
    listen 80;
    server_name test.com;
    root /var/www/test;
    index index.html;
} 
关键说明:
- 确保域名已解析到服务器IP。
- 使用 server_name区分不同站点,避免冲突。
基于端口(Port-Based)
原理:通过不同端口号(如 8080、9000)访问同一IP上的不同网站。
适用场景:临时测试环境、内部服务或受限域名场景。
配置示例: 

# 主网站:默认80端口
server {
    listen 80;
    server_name example.com;
    root /var/www/example;
}
# 测试站点:8080端口
server {
    listen 8080;                # 指定非标准端口
    server_name example.com;
    root /var/www/test;
} 
访问方式:浏览器输入 http://example.com:8080。
注意事项: 
- 需开放防火墙端口(如 sudo ufw allow 8080)。
- 非标准端口可能被安全策略拦截。
基于IP地址(IP-Based)
原理:为每个网站分配独立IP,Nginx 根据请求的IP地址路由流量。
适用场景:需强隔离的合规项目(如SSL证书绑定独立IP)。
配置示例: 
# 网站1:绑定IP 192.0.2.1
server {
    listen 192.0.2.1:80;        # 指定IP和端口
    server_name example.com;
    root /var/www/example;
}
# 网站2:绑定IP 192.0.2.2
server {
    listen 192.0.2.2:80;
    server_name test.com;
    root /var/www/test;
} 
实现前提:

- 服务器需配置多个IP(通过网卡子接口或云平台弹性IP)。
- 成本较高,适用于特殊需求场景。
最佳实践与常见问题
-  优先级规则: 
 Nginx 匹配顺序:- 精确域名 → 通配符域名(如 *.example.com)→ 默认服务器(listen ... default_server)。
 
- 精确域名 → 通配符域名(如 
-  调试技巧: - 检查配置语法:sudo nginx -t
- 重载配置:sudo nginx -s reload
- 查看访问日志:tail -f /var/log/nginx/access.log
 
- 检查配置语法:
-  安全建议:  - 限制默认服务器:避免未配置域名指向敏感目录。
- 启用HTTPS:使用 Let’s Encrypt 免费证书强化安全。
 
如何选择配置方式
| 方法 | 优势 | 局限 | 
|---|---|---|
| 基于域名 | 成本低、易于扩展 | 依赖域名解析 | 
| 基于端口 | 无需额外IP或域名 | 需用户记忆端口号 | 
| 基于IP | 支持特殊协议/证书需求 | 增加服务器IP成本 | 
引用说明:本文配置参考 Nginx 官方文档 Server Blocks,并结合服务器安全最佳实践,操作前请备份配置文件(
/etc/nginx/nginx.conf)。
 
  
			 
			 
			 
			 
			 
			 
			