出处 https://www.exception.site/docker/docker-install-nginx
本节中,我们将学习如何通过 Docker 快速安装&搭建 Ngnix, 为您的服务添加反向代理功能。
一、下载 Nginx 镜像
docker pull nginx:alpine
PS:我这里用的是 alipne 轻量级的镜像.
下载完成后,通过 docker images 命令检查一下镜像是否下载成功:
二、先以简单的方式运行镜像
docker run -d -p 80:80 --name nginx nginx:alpine
-p 80:80
: 将容器的 80 端口映射到宿主机的 80 端口上;-d
: 以后台方式运行镜像;--name
: 指定容器的名称为 nginx;
命令执行完成后,通过 docker ps
命令确认一下容器是否启动成功。确认成功后,再访问一下 80
端口,看看 nginx 服务是否启动成功:
三、复制相关配置文件至宿主机
复制运行中 nginx 相关配置文件到宿主机的指定路径下:
# 复制名称为 nginx 容器中 /etc/nginx/nginx.conf 文件夹到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/nginx.conf /docker/nginx
# 复制名称为 nginx 容器中 /etc/nginx/conf.d 文件到宿主机的 /docker/nginx 路径下
docker cp nginx:/etc/nginx/conf.d /docker/nginx
复制完成后,查看指定路径的配置文件,如下:
四、修改 Nginx 配置文件,添加反向代理
先通过命令 ifconfig
命令获取 docker0
网卡的 ip 地址:
PS: 因为我需要反向代理的服务部署在本机的 Docker 容器中,所以用的这个 IP,如果你用的外网其他地址,可自行修改。
接下来,在 conf.d/default.config
中添加反向代理相关配置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.0.1:8090;
五、删除刚刚启动的 Nginx 容器,新启动一个
先删除之前启动的 nginx 容器:
docker rm -f nginx
成功后,回到配置文件的主目录,执行:
docker run -d \
-p 80:80 \
--name nginx \
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/logs:/var/log/nginx \
nginx:alpine
参数说明:
-p 80:80
:将容器的 80 端口映射到主机的 80 端口;-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf
:将容器中的 /etc/nginx/nginx.conf 文件挂载到宿主机中的 /docker/nginx/nginx.conf 文件;-v /docker/nginx/conf.d:/etc/nginx/conf.d
:将容器中 /etc/nginx/conf.d 目录挂载到宿主机中的 conf.d 目录下;-v /docker/nginx/logs:/var/log/nginx
:将容器中的 /var/log/nginx 目录挂载到宿主机中的 /docker/nginx/logs 目录下, 用以查看 Nginx 日志;
运行命令成功后,直接访问公网 IP 的 80 端口,看看是否能够反向代理到 8090 端口的 Spring Boot 服务上:
OK! 大工告成。
🐞标题:Docker 快速安装&搭建 Ngnix 环境,并配置反向代理
👽作者:ruige
🐾地址:https://jjdhhc.com/articles/2020/11/07/1604727333497.html
🙏感恩:谢谢您的打赏与支持!中间图片是我的微信公众号,扫码关注哦!