Nginx 支持多站点配置(虚拟主机)

阅读:17 2025-07-24

本文介绍如何通过 Nginx 配置多站点(虚拟主机),让一台服务器同时托管多个域名或项目。我们将讲解虚拟主机的基本概念、配置步骤以及常见问题解决方案。


一、什么是虚拟主机

虚拟主机(Virtual Host)是指在同一台服务器上,通过域名或端口区分不同的网站服务。Nginx 利用 server 块为不同的域名分配独立的站点目录和配置。

常见场景:

  • 一台服务器上同时运行 www.a.comwww.b.com

  • 不同端口提供不同应用,如 http://example.com:8080http://example.com:8090


二、配置步骤

1. 准备目录结构

假设我们有两个站点:

  • 站点 A:/var/www/siteA

  • 站点 B:/var/www/siteB

sudo mkdir -p /var/www/siteA
sudo mkdir -p /var/www/siteB

2. 编写虚拟主机配置文件

/etc/nginx/conf.d/ 下创建两个配置文件,例如 siteA.confsiteB.conf

siteA.conf

server {
    listen 80;
    server_name www.a.com;

    root /var/www/siteA;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

siteB.conf

server {
    listen 80;
    server_name www.b.com;

    root /var/www/siteB;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

3. 检查配置并重启

sudo nginx -t
sudo systemctl reload nginx

三、常见问题与解决

  1. 域名解析问题
    确保 www.a.comwww.b.com 的 DNS 已指向服务器 IP。

  2. 默认站点覆盖问题
    如果 server_name 没有配置正确,Nginx 会将请求转到默认站点。

  3. HTTPS 配置
    每个虚拟主机需要单独配置 SSL 证书,可结合 Let’s Encrypt 自动签发。


四、总结

通过虚拟主机,Nginx 能够高效托管多个域名网站,实现资源共享并降低运维成本。对于中小型项目来说,这是多站点部署的最佳实践。


标签: Nginx
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!