加油
努力

如何在阿里云轻量服务器上配置多个域名指向不同网站?

在阿里云轻量应用服务器上配置多个域名指向不同网站,核心思路是:通过 Web 服务器(如 Nginx/Apache)的虚拟主机(Server Block/Location)功能,根据域名区分请求并转发到不同的项目目录或后端服务。以下是基于 Nginx 的详细步骤(Apache 逻辑类似):


✅ 前提条件

  1. 已购买阿里云轻量应用服务器,并安装好 Web 环境(推荐宝塔面板简化操作,或直接使用命令行)。
  2. 各域名已完成 DNS 解析,A 记录 指向服务器公网 IP。
  3. 服务器防火墙已放行 80/443 端口(阿里云安全组 + 系统防火墙)。

🛠️ 方法一:使用 Nginx 手动配置(推荐生产环境)

步骤 1:创建网站目录与基础文件

sudo mkdir -p /var/www/site1/html
sudo mkdir -p /var/www/site2/html

# 创建测试页面
echo "<h1>Site 1: example.com</h1>" | sudo tee /var/www/site1/html/index.html
echo "<h1>Site 2: test.cn</h1>" | sudo tee /var/www/site2/html/index.html

# 设置权限(以 www-data 为例,CentOS 可能是 nginx)
sudo chown -R www-data:www-data /var/www/site1 /var/www/site2
sudo chmod -R 755 /var/www

步骤 2:配置 Nginx 虚拟主机

编辑主配置文件(路径因发行版而异):

  • Ubuntu/Debian: /etc/nginx/sites-available/default
  • CentOS/RHEL: /etc/nginx/conf.d/example.conf

✅ 更推荐新建独立配置避免覆盖默认:

sudo nano /etc/nginx/conf.d/site1.conf

写入以下内容(替换实际域名和路径):

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/site1/html;
    index index.html index.htm;

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

    # 可选:强制 HTTPS(需先申请证书)
    # return 301 https://$host$request_uri;
}

server {
    listen 80;
    server_name test.cn www.test.cn;
    root /var/www/site2/html;
    index index.html index.htm;

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

💡 提示:若需支持 PHP/Node.js/Python 等,需在 location ~ .php$ 等块中配置 FastCGI 反向X_X。

步骤 3:测试并重载 Nginx

sudo nginx -t          # 检查语法
sudo systemctl reload nginx

步骤 4:验证访问

浏览器访问 http://example.comhttp://test.cn,应分别显示对应站点内容。


🔐 进阶:启用 HTTPS(Let’s Encrypt 免费证书)

方案 A:使用 certbot(推荐)

# 安装 certbot + nginx 插件
sudo apt install certbot python3-certbot-nginx   # Ubuntu
# 或
sudo yum install certbot python3-certbot-nginx   # CentOS

# 自动获取并配置所有域名的证书
sudo certbot --nginx -d example.com -d www.example.com -d test.cn -d www.test.cn

✅ 成功后会自动修改 Nginx 配置,添加 listen 443 ssl 及证书路径,并重定向 HTTP→HTTPS。

方案 B:宝塔面板用户

  • 登录宝塔 → 网站 → 点击“设置” → SSL → 选择 Let’s Encrypt → 勾选域名 → 一键申请
  • 自动配置重定向,无需手动改 Nginx。

🧩 替代方案:使用宝塔面板(适合新手)

  1. 在阿里云控制台安装「宝塔面板」(Linux 面板)。
  2. 登录宝塔 → 「网站」→「添加站点」:
    • 输入第一个域名(如 example.com),选择根目录(如 /www/wwwroot/example.com
    • 再次添加第二个域名(如 test.cn),指定不同根目录
  3. 每个站点可独立配置:
    • PHP 版本
    • SSL 证书(一键申请 Let’s Encrypt)
    • 伪静态规则
    • 数据库绑定

✅ 优势:可视化操作、批量管理、自动备份、监控告警等。


⚠️ 常见问题排查

问题 可能原因 解决方法
所有域名都返回同一网站内容 Nginx 未正确配置 server_name 或优先级错误 检查 server_name 拼写;确保无 default_server 冲突
404 Not Found 根目录错误或 index 文件缺失 ls /var/www/siteX/html 确认文件存在;检查 root 路径
无法访问(Connection refused) 防火墙/安全组未开放 80/443 阿里云控制台 → 实例 → 安全组 → 添加入方向规则
HTTPS 报错证书无效 域名未生效或未正确配置 检查 DNS 解析是否生效(ping example.com);确认证书域名匹配

需要我为你提供:

  • 完整的 Nginx 多域名配置模板(含 PHP/Node.js 示例)?
  • 宝塔面板图文操作指南?
  • 自动化脚本批量部署多个站点?

欢迎告诉我你的具体需求 😊

云服务器