EC2:将多个应用程序映射到不同的域

EC2:将多个应用程序映射到不同的域

我正在使用 EC2,并且能够创建在端口 80 上具有 django 应用程序和在 8080 上具有 tomcat 的实例。现在,使用弹性 IP,我可以设法将我的域重定向到 django 应用程序。现在我想将子域映射到每个 tomact 应用程序。例如

django app (ec2...:80) --> mydomain.com
tomcat (ec2...:8080) --> tomcat.mydomain.com
webbapp1 (ec2...:8080/webapp1/) --> webapp1.mydomain.com

使用免费帐户可以实现这个功能吗?

再见

答案1

您需要反向代理。我建议使用 Nginx。

在执行此操作之前,您需要将 Django 应用移动到其他端口,因为反向代理需要绑定到端口 80。例如,将其移动到端口 8081。

这是一个示例配置:

server {
    listen 80 default;
    server_name mydomain.com;

    # Forward to Django
    location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8081/;
            proxy_redirect off;
    }
}

server {
    server_name tomcat.mydomain.com

    # Forward to Tomcat
    location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080/;
            proxy_redirect off;
    }
}

相关内容