Nginx多域名配置(手把手教你实现一个服务器托管多个网站)
在现代Web开发和运维中,经常需要在一个服务器上托管多个网站。这时,Nginx多域名配置就显得尤为重要。本文将从零开始,详细讲解如何通过Nginx实现一个服务器同时支持多个域名访问不同网站内容,即使是小白也能轻松上手!
什么是Nginx多域名配置?
Nginx 是一款高性能的 Web 服务器和反向代理服务器。通过“虚拟主机”(Virtual Host)技术,Nginx 可以根据用户访问的域名,将请求分发到不同的网站目录或后端服务。这种机制就是我们常说的多域名配置。

准备工作
- 一台安装了 Nginx 的 Linux 服务器(如 Ubuntu、CentOS)
- 至少两个已备案并解析到该服务器 IP 的域名(例如:example1.com 和 example2.com)
- 基本的命令行操作能力
步骤一:创建网站目录
首先,为每个域名创建独立的网站根目录:
# 创建目录sudo mkdir -p /var/www/example1.com/htmlsudo mkdir -p /var/www/example2.com/html# 设置权限sudo chown -R $USER:$USER /var/www/example1.com/htmlsudo chown -R $USER:$USER /var/www/example2.com/html
然后,在每个目录下创建一个简单的 index.html 文件用于测试:
echo "欢迎访问 example1.com
" > /var/www/example1.com/html/index.htmlecho "欢迎访问 example2.com
" > /var/www/example2.com/html/index.html
步骤二:配置Nginx虚拟主机
进入 Nginx 配置目录(通常为 /etc/nginx/sites-available/),为每个域名创建独立的配置文件:
1. 创建 example1.com 的配置文件:
sudo nano /etc/nginx/sites-available/example1.com
写入以下内容:
server { listen 80; listen [::]:80; root /var/www/example1.com/html; index index.html index.htm; server_name example1.com www.example1.com; location / { try_files $uri $uri/ =404; }}
2. 同样方式创建 example2.com 的配置文件:
sudo nano /etc/nginx/sites-available/example2.com
内容类似,只需修改 root 和 server_name 字段:
server { listen 80; listen [::]:80; root /var/www/example2.com/html; index index.html index.htm; server_name example2.com www.example2.com; location / { try_files $uri $uri/ =404; }}
步骤三:启用站点配置
在 Debian/Ubuntu 系统中,需要将配置文件链接到 sites-enabled 目录:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
如果你使用的是 CentOS 或其他不区分 sites-available 的系统,可以直接在 /etc/nginx/conf.d/ 下创建 .conf 文件,Nginx 会自动加载。
步骤四:测试并重载Nginx
在重启 Nginx 前,务必检查配置语法是否正确:
sudo nginx -t
如果显示 successful,说明配置无误。接着重载 Nginx 使配置生效:
sudo systemctl reload nginx
验证结果
现在,在浏览器中分别访问 http://example1.com 和 http://example2.com,你应该能看到各自对应的欢迎页面。这说明你的 Nginx服务器设置 已成功实现多域名托管!
常见问题与注意事项
- 确保域名已正确解析到服务器 IP 地址(可通过
ping命令测试) - 防火墙需开放 80 端口(HTTP)或 443 端口(HTTPS)
- 若需 HTTPS,可使用 Let's Encrypt 免费证书配合 Certbot 自动配置
- 配置文件中的
server_name支持通配符(如*.example.com)
总结
通过本文,你已经掌握了 网站多域名部署 的核心方法。Nginx 的虚拟主机功能强大且灵活,不仅能支持多域名,还能结合反向代理、负载均衡等高级功能。希望这篇教程能帮助你在实际项目中高效管理多个网站!
如果你觉得有用,欢迎收藏本教程,并分享给更多需要的朋友。祝你运维顺利!
来源:https://www.vpshk.cn/











