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

AWS多域名网站部署求助:未注册域名仅持有Elastic IP

无注册域名时,AWS EC2上多子域名Nginx部署方案

方案一:本地Hosts映射延续开发模式(仅测试用)

  • 在本地Hosts文件中添加EC2弹性IP与各子域名的映射,格式如下(替换1.2.3.4为你的EC2弹性IP):
    1.2.3.4 teacher.xxxx.cn
    1.2.3.4 ucenter.xxxx.cn
    1.2.3.4 www.xxxx.com
    
    (Windows路径:C:\Windows\System32\drivers\etc\hosts;Linux/macOS路径:/etc/hosts)
  • EC2上部署Nginx,配置文件基本沿用开发时的内容,仅需调整后端服务地址(若后端不在同一EC2实例,替换为对应私有IP):
    upstream uidevserver{
        server 127.0.0.1:8602 weight=10;
    } 
    
    upstream gatewayserver{
        server 127.0.0.1:xxxx; # 替换为网关服务实际端口/私有IP
    }
    
    server {
        listen       80;
        server_name  teacher.xxxx.cn;
        ssi on;
        ssi_silent_errors on;
        location / {
            proxy_pass   http://uidevserver;
        }
    
        location /api/ {
                proxy_pass http://gatewayserver/;
        }     
    }
    
    server {
        listen       80;
        server_name  ucenter.xxxx.cn;
        ssi on;
        ssi_silent_errors on;
        location / {
            alias   /path/to/your/project/ucenter/; # 替换为EC2上的静态文件路径
            index  index.html index.htm;
        }
        location /include {
            proxy_pass   http://127.0.0.1;
        }
        location /img/ {
            proxy_pass   http://127.0.0.1/static/img/;
        }
        location /api/ {
                proxy_pass http://gatewayserver/;
        } 
    }
    
  • 配置EC2安全组开放80端口,仅允许你的本地IP访问(避免无关公网请求)

方案二:IP+路径前缀替代子域名(无需修改本地Hosts)

如果不想修改本地Hosts,可通过路径前缀区分不同服务,将原有的子域名逻辑转为IP下的不同路径:

  • 调整Nginx配置,合并所有server块,用location路径对应原服务:
    upstream uidevserver{
        server 127.0.0.1:8602 weight=10;
    } 
    
    upstream gatewayserver{
        server 127.0.0.1:xxxx;
    }
    
    server {
        listen       80;
        server_name  _; # 匹配所有访问IP的请求
    
        # 对应原teacher.xxxx.cn服务
        location /teacher/ {
            ssi on;
            ssi_silent_errors on;
            rewrite ^/teacher/(.*)$ /$1 break; # 去掉路径前缀,避免后端收到错误路径
            proxy_pass   http://uidevserver;
        }
    
        # 对应原ucenter.xxxx.cn服务
        location /ucenter/ {
            ssi on;
            ssi_silent_errors on;
            alias   /path/to/your/project/ucenter/;
            index  index.html index.htm;
            rewrite ^/ucenter/(img|include)/(.*)$ /$1/$2 break; # 修正静态资源路径
        }
    
        # 统一处理所有/api路径
        location /api/ {
            proxy_pass http://gatewayserver/;
        }
    }
    
  • 访问方式:用http://你的弹性IP/teacher/访问原teacher子域名服务,http://你的弹性IP/ucenter/访问原ucenter子域名服务

注意事项

  • 以上两种方案均仅适合测试/开发阶段,正式环境必须注册域名并配置DNS解析到弹性IP,才能实现公网用户正常访问多子域名服务。
  • 确保EC2上的所有后端服务(如uidevserver、gatewayserver)已正常启动,且内部端口可访问。

内容的提问来源于stack exchange,提问作者Alan Liu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:13:09