Docker中的Nginx

问题描述 投票:0回答:1

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

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

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

docker nginx webserver reverse-proxy
1个回答
0
投票

要在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中心上的Nginx页面还可以帮助您开始提供静态内容:https://hub.docker.com/_/nginx

© www.soinside.com 2019 - 2024. All rights reserved.