好物优选点击查看详情 京东购买

暂无内容

Docker 快速安装&搭建 Ngnix 环境,并配置反向代理

本节中,我们将学习如何通过 Docker 快速安装&搭建 Ngnix, 为您的服务添加反向代理功能。

一、下载 Nginx 镜像

docker pull nginx:alpine 

PS:我这里用的是 alipne 轻量级的镜像.

下载完成后,通过 docker images 命令检查一下镜像是否下载成功:

检查ngnix镜像是否下载成功

二、先以简单的方式运行镜像

docker run -d -p 80:80 --name nginx nginx:alpine 
  • -p 80:80: 将容器的 80 端口映射到宿主机的 80 端口上;
  • -d: 以后台方式运行镜像;
  • --name: 指定容器的名称为 nginx;

命令执行完成后,通过 docker ps命令确认一下容器是否启动成功。确认成功后,再访问一下 80 端口,看看 nginx 服务是否启动成功:

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 

复制完成后,查看指定路径的配置文件,如下:

Docker 快速安装&搭建 Ngnix 环境,并配置反向代理插图2

四、修改 Nginx 配置文件,添加反向代理

先通过命令 ifconfig 命令获取 docker0网卡的 ip 地址:

Docker 快速安装&搭建 Ngnix 环境,并配置反向代理插图3

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; 

Docker 快速安装&搭建 Ngnix 环境,并配置反向代理插图4

五、删除刚刚启动的 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 服务上:

访问80端口,看方向代理是否成功

OK! 大工告成。

原文链接:https://www.exception.site/docker/docker-install-nginx

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享