angularjs - 如何在一个IP地址中托管多个docker化网站(nginx)?

标签 angularjs api docker haproxy

这是我的场景: 1.我有一台aws ec2机器(coreOs) 2. 我在其中托管了多个 API - 全部都在 docker 容器中 3. 我有 HA 代理监听另一个端口,该端口监听特定端口(例如 999)并负载平衡多个 API。工作完美... 4. 我有另一个 ngnix 容器来托管我的 Angular 站点。这显然监听端口 80。假设它映射到 http://pagladasu.com

我想要的是创建 http://one.pagladasu.comhttp://two.pagladasu.com等等。并希望每个都指向 Docker 容器中不同的 Angular 应用程序。

问题是 - 两者都需要监听 80 端口 - 那么如何实现呢?

最佳答案

创建一个监听端口 80 并运行 Nginx 的容器。为每个子域(one.pagladasu.comtwo.pagladasu.com)配置 Nginx 虚拟主机,使用 proxy_pass 发送与上游 Angular 容器的连接。像这样的事情:

server {
    listen 80;
    server_name one.pagladasu.com;

    location / {
        proxy_pass http://one-pagladasu-com;
    }
}
server {
    listen 80;
    server_name two.pagladasu.com;

    location / {
        proxy_pass http://two-pagladasu-com;
    }
}

将此 Nginx 容器链接到两个 Angular 容器。 Docker 将为您修改 /etc/hosts ,以便您可以通过名称引用它们。在本例中,我假设它们的名称类似于 one-pagladasu-com 但当然它可以是任何名称。

现在流程是请求 => Nginx 虚拟主机容器 => Angular 容器 => HAProxy => API。

关于angularjs - 如何在一个IP地址中托管多个docker化网站(nginx)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31751032/

相关文章:

javascript - AngularJS 搜索并显示更多结果

c# - 委托(delegate)(Lambda 表达式)与接口(interface)和抽象类

linux - 如果将每 10 分钟重复一次的命令添加到 crontab,第一个作业何时运行?

hadoop - Docker 容器中的 Hadoop 更快/值得吗?

database - 基于邮政编码的经纬度

docker - 为什么我无法通过 Docker 访问 NiFi 流的开放 HTTP 端口?

javascript - 设置 Angular 变量互不影响

angularjs - 在 ng-repeat 元素内的新行上的表格中显示 tr 的最后一个 td

javascript - 如果元素未更改,则阻止调用 $watch

android - 如何为坦桑尼亚集成国家身份验证机构 (NIDA) API?