nginx - 您可以在不暴露任何端口的情况下使用 nginx 反向代理到 docker 容器吗?

标签 nginx docker docker-compose reverse-proxy

我想知道是否可以将 nginx 与 docker compose 结合使用作为 api 网关/反向代理/ssl 终止点,而不暴露其后面容器上的任何端口。 IE。当容器链接到通过 nginx 进行通信时,我只想使用 docker compose 创建的内联网。理想情况下,唯一可公开访问的端口是 nginx 上的端口 443 (ssl)。这可行吗?或者我是否必须公开容器上的端口?

最佳答案

是的,是可行的。

只需在一个容器中定义您的应用程序,在另一个容器中定义 nginx,两者都在同一个 docker-compose.yml 中。将它们链接起来。并且只暴露nginx容器中的443端口。

docker-compose.yml

nginx:
    image: nginx
    links:
        - node1:node1
        - node2:node2
        - node3:node3
    ports:
        - "443:443"
node1:
    build: ./node
node2:
    build: ./node
node3:
    build: ./node

更多信息:http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/

问候

关于nginx - 您可以在不暴露任何端口的情况下使用 nginx 反向代理到 docker 容器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40144250/

相关文章:

nginx - 是什么导致 nginx 出现 'The underlying connection was closed'?

nginx - Apache APISIX的高性能和低延迟是如何实现的

php - Nginx 502 网关错误。通过增加buffer来解决。为什么?

multithreading - Docker sidekiq 比原生操作系统慢得多

macos - docker 附上: Why can't I detach from my Docker container?

docker - 无法使用docker-compose运行容器

docker - 如何在通过相同 “docker-compose up”调用旋转的所有docker容器之间共享值?

nginx - K8s Helm - 带有 Nginx Ingress 的 Jenkins

java - SQL异常仅发生在三台服务器之一上

php - 如何在不终止 docker 容器的情况下重新启动 apache2?