Docker 中的 Nginx
Nginx in Docker
我正在使用 Docker 容器,并希望 Nginx 为前端资源提供服务,或者指向正确的后端服务,从而充当反向代理。我该怎么做呢?我是否需要为每个后端服务设置另一个 Nginx 服务器?
此外,我对 Nginx 在 docker 中的工作方式感到困惑。据我了解,您指定了设置到 Nginx public 目录中的卷。如果我提供静态资源,那不是问题。但是,如果我将所有 php 依赖项和必要的依赖项下载到单独容器中的 运行 我的应用程序(称为 laravel 容器),然后在 Nginx public 中引用这些文件目录,那么 Nginx 如何能够 运行 这段代码以及所有后端计算是由 Nginx 容器还是 laravel 容器执行的?
这些可能是愚蠢的问题,但此刻我很困惑。
要在 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
我正在使用 Docker 容器,并希望 Nginx 为前端资源提供服务,或者指向正确的后端服务,从而充当反向代理。我该怎么做呢?我是否需要为每个后端服务设置另一个 Nginx 服务器?
此外,我对 Nginx 在 docker 中的工作方式感到困惑。据我了解,您指定了设置到 Nginx public 目录中的卷。如果我提供静态资源,那不是问题。但是,如果我将所有 php 依赖项和必要的依赖项下载到单独容器中的 运行 我的应用程序(称为 laravel 容器),然后在 Nginx public 中引用这些文件目录,那么 Nginx 如何能够 运行 这段代码以及所有后端计算是由 Nginx 容器还是 laravel 容器执行的?
这些可能是愚蠢的问题,但此刻我很困惑。
要在 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