这是我的场景: 1.我有一台aws ec2机器(coreOs) 2. 我在其中托管了多个 API - 全部都在 docker 容器中 3. 我有 HA 代理监听另一个端口,该端口监听特定端口(例如 999)并负载平衡多个 API。工作完美... 4. 我有另一个 ngnix 容器来托管我的 Angular 站点。这显然监听端口 80。假设它映射到 http://pagladasu.com
我想要的是创建 http://one.pagladasu.com和 http://two.pagladasu.com等等。并希望每个都指向 Docker 容器中不同的 Angular 应用程序。
问题是 - 两者都需要监听 80 端口 - 那么如何实现呢?
最佳答案
创建一个监听端口 80 并运行 Nginx 的容器。为每个子域(one.pagladasu.com
、two.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/