在 Linux 下使用 Nginx 实现“一台服务器部署多个网站/域名”的场景非常常见,适合部署个人博客、企业官网、多站点系统等。
🌐 一台服务器使用 Nginx 支持多个域名部署指南(Linux 环境)
你提到关键词 “babyblue
”,我将以 babyblue.com
和 another.com
两个域名为例讲解,假设你已经拥有两个域名并解析到了服务器 IP。
✅ 一、前提条件
- Linux 服务器一台(如 Ubuntu 20.04 / CentOS)
- 安装好了 Nginx(
nginx -v
检查版本) - DNS 已将域名解析到服务器公网 IP
- 有不同网站代码目录(例如
/var/www/babyblue.com
和/var/www/another.com
)
✅ 二、配置文件结构说明
Nginx 配置文件通常位于:
/etc/nginx/nginx.conf # 主配置文件
/etc/nginx/sites-available/ # 可用站点配置(Ubuntu/Debian)
/etc/nginx/sites-enabled/ # 启用站点(软链接)
如果是 CentOS,配置通常放在 /etc/nginx/conf.d/*.conf
。
✅ 三、创建两个站点的配置文件
示例:配置 babyblue.com
路径:/etc/nginx/sites-available/babyblue.com
server {
listen 80;
server_name babyblue.com www.babyblue.com;
root /var/www/babyblue.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
示例:配置 another.com
路径:/etc/nginx/sites-available/another.com
server {
listen 80;
server_name another.com www.another.com;
root /var/www/another.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
✅ 四、启用站点配置(仅 Ubuntu/Debian)
sudo ln -s /etc/nginx/sites-available/babyblue.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/another.com /etc/nginx/sites-enabled/
CentOS 直接放到 /etc/nginx/conf.d/
目录即可。
✅ 五、检查配置并重启 Nginx
sudo nginx -t # 检查配置是否正确
sudo systemctl reload nginx # 重载配置(不重启进程)
✅ 六、访问测试
分别打开:
它们应该各自显示自己站点的内容。
✅ 七、HTTPS 配置(可选)
推荐使用 Let’s Encrypt + Certbot 免费配置 HTTPS。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d babyblue.com -d www.babyblue.com
sudo certbot --nginx -d another.com -d www.another.com
Certbot 会自动修改 Nginx 配置并续签证书。
✅ 八、目录建议结构
/var/www/
├── babyblue.com/
│ └── index.html
└── another.com/
└── index.html
✅ 九、常见问题排查
问题 | 排查建议 |
---|---|
浏览器打不开网站 | 检查域名是否解析、端口是否开放(80/443) |
多域名都跳到同一个站点 | 可能只启用了一个配置,或写错了 server_name |
HTTPS 报错/证书无效 | 检查证书是否成功签发,重启 nginx |
需要我提供完整配置脚本一键部署多个站点吗?或者为 babyblue.com
配一份 HTTPS + Nginx 完整配置也可以。是否继续?
发表回复