静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

Nginx 是流行的服务器,一般用它对静态资源做托管、对动态资源做反向代理。

Docker 是流行的容器技术,里面可以跑任何服务。

那 Docker + Nginx 如何结合使用呢?

我们来试一下:

首先要下载 Docker,直接安装 Docker Desktop 就行:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

它是用来管理容器和镜像的:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

安装它之后,docker 命令也就可用了:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

然后我们来跑下 nginx 的镜像。

搜索 nginx(这一步需要科学上网,因为要访问 hub.docker.com 这个网站),点击 run:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

输入容器名和要映射的端口:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

这里把宿主机的 81 端口映射到容器内的 80 端口,点击 run。

这时候就可以看到 docker 容器跑起来了,并且打印了日志:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

浏览器访问下 http://localhost:81 可以看到 nginx 欢迎页面:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

这很明显是容器里跑的服务。

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

但是现在的页面是默认的,我想用 nginx 来托管我的一些静态 html 页面怎么做呢?

首先我们要知道现在的配置文件和页面都存在哪里。

在 files 面板可以看到容器内的文件:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

里面的 /usr/share/nginx/html/ 目录下面就是所有的静态文件。

双击点开 index.html 看看:

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

静态资源托管、动态资源反向代理+负载均衡...Docker + Nginx 如何结合使用?

和我们浏览器看到的页面一毛一样。

也就是说,这个目录就是保存静态文件的目录。

那我们在这个目录下放我们自己的 html 不就行了?

我们先把这个目录复制出来:

bash