【问题标题】:Nginx in DockerDocker 中的 Nginx
【发布时间】:2020-04-08 19:05:15
【问题描述】:

我正在使用 Docker 容器,并希望 Nginx 提供前端资源或指向正确的后端服务,从而充当反向代理。我该怎么做呢?我是否需要为每个后端服务设置另一个 Nginx 服务器?

我也对 Nginx 在 docker 中的工作方式感到困惑。据我了解,您指定了设置到 Nginx 公共目录中的卷。如果我提供静态资源,那不是问题。但是,如果我下载了所有 php 依赖项和必要的依赖项以在单独的容器中运行我的应用程序(称为 laravel 容器),然后在 Nginx 公共目录中引用这些文件,那么 Nginx 如何能够运行此代码并且是所有后端是 Nginx 容器还是 laravel 容器进行计算?

这些可能是愚蠢的问题,但我现在很困惑。

【问题讨论】:

    标签: docker nginx webserver reverse-proxy


    【解决方案1】:

    要在 docker 容器中配置 Nginx,您必须在运行容器时包含一个 nginx.conf 文件。要添加此文件,您可以使用 -v 参数。这应该看起来像这样。

    docker run -d -v $PWD/nginx.conf:/etc/nginx/nginx.conf nginx
    

    在您的 Nginx.conf 文件中,您可以指定 Nginx 的行为方式。反向代理的示例如下所示:

    events {
      worker_connections  4096;  ## Default: 1024
    }
    
    http {
      server {
        listen          80;
        listen          [::]:80;
        server_name     example.com;
    
        location / {
          proxy_pass http://172.17.0.1:8080;
        }
      }
    }
    

    这会将对 example.com/ 的请求重定向到端口 8080 上 docker ip 172.17.0.1 的 docker 容器。

    配置 Nginx 文件的完整描述可以在这里找到:https://www.nginx.com/resources/wiki/start/topics/examples/full/

    docker hub 上的 Nginx 页面也可以帮助您开始提供静态内容: https://hub.docker.com/_/nginx

    【讨论】:

    • 感谢您的回复,我将深入研究该文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2018-06-18
    • 1970-01-01
    • 2020-06-29
    • 2020-08-01
    • 1970-01-01
    • 2018-10-10
    相关资源
    最近更新 更多