简单了解 docker nginx 的配置
在上一篇文章介绍了如何使用 docker 来启动 Nginx 服务器, 那仅仅是把 nginx 跑起来。要怎么对nginx 进行配置呢? 本篇文章,我们一起来了解一下。
到Nginx container 里面看一看
上回已经pull 了 nginx image, 这里再讲 nginx 跑起来并进入其所在的 container 里面看看
-
docker run -p 80:80 --name ngx -it nginx /bin/bash
- -it: 表示给一个可以交互的console
- /bin/bash: container 里面使用/bin/bash
[root@localhost demo]# docker run -p 80:80 --name ngx -it nginx /bin/bash root@2074560816b0:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@2074560816b0:/#
-
docker nginx 有 3 个主要目录
- /etc/nginx : nginx 的配置目录
root@e3121015f456:/# ls /etc/nginx/ conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf root@e3121015f456:/#
- /var/log/nginx : nginx log 目录
root@e3121015f456:/# ls /var/log/nginx/ access.log error.log root@e3121015f456:/#
- /usr/share/nginx/html : 资源目录
root@e3121015f456:/# ls /usr/share/nginx/html/ 50x.html index.html static root@e3121015f456:/#
- 我们可以将以上 3 个目录从nginx container 中映射到Linux 主机上, 这样可以方便修改配置、更换资源和查看log
将 3 个目录映射到本机
-
需要将 nginx container 的 /etc/nginx, /var/log/nginx 和 /usr/share/nginx/html 映射到本机
-
在启动了nginx container的情况下,使用docker cp 将 nginx 配置文件目录和资源文件目录先复制到本机的 /home/demo 目录下
docker cp ngx:/etc/nginx . ==> nginx配置文件目录 docker cp ngx:/usr/share/nginx/html . ==> 资源目录 mkdir log ==> 创建一个log 目录用了接收 nginx log
-
复制完,/home/demo 下会多出 2 个目录, nginx 和 html (我把nginx 目录重命名为config,html 目录重命名为 www)
- 默认的nginx server 配置文件在 config/conf.d/default.conf
-
停掉当前已启动的nginx container
docker rm -f ngx
-
使用一下命令来启动新的nginx container,用参数 -v 将 nginx 3 个目录映射到本机 /home/demo
docker run --name ngx -d -p 80:80 \ -v `pwd`/config:/etc/nginx \ -v `pwd`/log:/var/log/nginx \ -v `pwd`/www:/usr/share/nginx/html \ -d nginx
-
用浏览器访问Linux 主机 (我的Linux ip 在192.168.56.1)
-
查看 log 目录下,会生成access.log 和 error.log
-
映射完目录启动的nginx container 会从本机目录读取配置和资源文件。 通过修改本机目录下配置和资源文件,来实现更新, 就好像nginx 是装在本机上一样来使用
使用 nginx 部署 vue demo
-
使用 vue-cli 生成一个一份demo, 用npm run build 构建好静态资源 (参考 简单说说 Vue-cli)
-
将build 好的dist 目录下的资源复制到前面提到的 www 目录
[root@localhost demo]# ls www/ 50x.html index.html static
-
刷新浏览器 192.168.56.1,
image.png -
至此,使用docker nginx 成功部署 vue demo