使用 Docker 配置Nginx
之前一直是通过包管理的方式或者源码编译的方式来安装 Nginx,最近喜欢上了 Docker ,这里记录一下使用 Docker 配置 Nginx 及遇到的问题
获取配置文件
先创建一个 Nginx 容器,拷贝出来其中的配置文件
1 | docker run -d \ |
拷贝容器内 Nginx 默认配置文件到 /etc/nginx
目录下(前面的是容器内路径,后面的是自己指定的目录)
1 | docker cp nginx:/etc/nginx /etc/nginx |
停止并删除容器
1 | docker stop nginx && docker rm nginx |
重新安装 Nginx 容器
这次把 80 和 443 端口映射出来,映射配置文件的路径到刚才配置的路径(-v 前面的路径是自己的配置路径,后面的是容器内路径)
1 | docker run -d \ |
配置完成后访问 80 端口,就可以正常看到 Nginx 的欢迎页面了(如果有问题的话,检查防火墙)
反向代理其他容器
这里需要注意的是如果反向代理其他容器,因为 Nginx 也在容器中的原因,默认代理 127.0.0.1 的话访问的是 Nginx 自己的网络,而不是宿主机的网络,这里需要用需要反向代理的容器 ip 才可以,否则就是 502 bad gateway 错误
查看需要反向代理的容器 ip
1 | docker inspect 容器ID |
在 “Networks”: 中找到 “IPAddress” 即可
配置反向代理
在上面配置过的 /etc/nginx/conf.d/
目录下新建自己需要的反向代理配置文件即可,注意修改为需要反向代理的容器 ip,比如新建一个 80.conf
1 | server { |
完成后重启 Nginx 容器
1 | docker restart nginx |
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShiGuang
评论