You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已在Route53配置EC2子域名A记录,如何指向实例内独立目录

嘿,这个问题我帮很多人解决过——本质上是要让Web服务器根据访问的域名(HTTP请求里的Host头),把请求路由到对应的文件夹里。下面分两种最常用的Web服务器(Nginx和Apache)给你具体步骤:

Nginx 配置方案

如果你的EC2实例用的是Nginx,按以下步骤操作:

  1. 找到配置文件目录:Nginx的虚拟主机配置一般在 /etc/nginx/sites-available/ 或者 /etc/nginx/conf.d/ 目录下,先切换到这里。
  2. 创建/修改虚拟主机配置:
    • 可以复制主域名的配置文件,改名为 staging.example.com.conf,然后修改关键参数;
    • 也可以直接新建一个配置文件,内容参考下面的示例:
    server {
        listen 80;
        server_name staging.example.com; # 指定子域名
    
        root /var/www/staging; # 替换成你的staging站点文件夹实际路径
        index index.html index.php; # 根据你的站点类型调整(比如静态站就留index.html)
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        # 如果是PHP站点,需要添加PHP处理规则(根据你的PHP版本调整)
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
    }
    
  3. 验证配置正确性:执行命令检查配置有没有语法错误:
    sudo nginx -t
    
  4. 重启Nginx生效:
    sudo systemctl restart nginx
    

Apache 配置方案

如果用的是Apache,步骤如下:

  1. 启用虚拟主机模块:先确保mod_vhost_alias模块已经启用:
    sudo a2enmod vhost_alias
    
  2. 创建虚拟主机配置:切换到Apache的站点配置目录 /etc/apache2/sites-available/,新建 staging.example.com.conf 文件,内容参考:
    <VirtualHost *:80>
        ServerName staging.example.com
        DocumentRoot /var/www/staging # 替换为你的staging文件夹路径
    
        # 配置目录权限,确保Web服务器能访问
        <Directory /var/www/staging>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
        </Directory>
    
        # 配置日志(可选,方便排查问题)
        ErrorLog ${APACHE_LOG_DIR}/staging.example.com_error.log
        CustomLog ${APACHE_LOG_DIR}/staging.example.com_access.log combined
    </VirtualHost>
    
  3. 启用这个虚拟主机:
    sudo a2ensite staging.example.com.conf
    
  4. 重启Apache生效:
    sudo systemctl restart apache2
    

关键注意事项

  • 文件夹权限:确保Web服务器用户(Nginx/Apache一般用www-data)拥有staging文件夹的读取权限,执行命令调整:
    sudo chown -R www-data:www-data /var/www/staging
    
  • HTTPS支持:如果你的主域名用了HTTPS,记得给staging子域名也配置SSL证书(比如用Let's Encrypt的Certbot一键生成),并在配置文件中添加443端口的监听规则。
  • 默认站点冲突:如果之前有默认的虚拟主机配置,要确保staging的配置优先级更高(比如域名匹配更精确),避免被默认站点覆盖。

内容的提问来源于stack exchange,提问作者Samuel Noriega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:12:46