单个服务器上的多个子域。码头工人 + NGINX @ EC2

Posted

技术标签:

【中文标题】单个服务器上的多个子域。码头工人 + NGINX @ EC2【英文标题】:Multiple Sub-Domains on a single server. Docker + NGINX @ EC2 【发布时间】:2019-06-01 09:40:46 【问题描述】:

我有多个使用 Docker 部署并托管在 EC2 中的基于 NGNIX-uWSGI 的 Django 应用程序(目前在不同的端口,如 81、82,...)。现在我希望在其中添加子域,这样 sub1.domain.com 和 sub2.domain.com 都可以在同一个 EC2 实例中工作。

我可以使用多个端口,但它们不能通过 DNS 设置工作。 sub1.domain.com -> 1.2.3.4:81 sub2.domain.com -> 1.2.3.4:82

我不能做什么

    多个 IP ref:无法为每个部署的子域分配新 ip。

    nginx 代理 ref:这看起来是理想的解决方案,但它不是由 Docker 或 NGINX 等组织维护的,所以我不确定安全性和可靠性。

我在考虑什么:

    我正在考虑编写我自己的 NGINX 反向代理,类似于 Apache Multiple Sub Domains With One IP Address 但由于技术堆栈已经有一个 NGINX-uWSGI 代理,因此流程将通过多个代理进行

【问题讨论】:

【参考方案1】:

你可以使用 nginx 上游

upstream backend 
    server backend1.example.com       weight=5;
    server backend2.example.com:8080;
    server unix:/tmp/backend3;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;


server 

  server_name sub.test.com www.sub.test.com;

    location / 
        proxy_pass http://backend;
    

【讨论】:

以上是关于单个服务器上的多个子域。码头工人 + NGINX @ EC2的主要内容,如果未能解决你的问题,请参考以下文章

aws 上的詹金斯码头工人

码头工人在 scaleway 上的暴发户

牧场主网络码头工人撰写

码头工人和作曲家安装

单个 Pyramid 实例上的多个域和子域

码头工人群或牧场牛中的芹菜工人