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

一、下载 Nginx 镜像

docker pull nginx:alpine

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

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

Docker安装和搭建Ngnix环境,并配置反向代理插图

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

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

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

Docker安装和搭建Ngnix环境,并配置反向代理插图1

三、复制相关配置文件至宿主机

先创建/docker/nginx,并且配置的时候要配置上绝对路径

mkdir 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 grep inet 命令获取 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://192.168.71.228:8083;

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

五、删除刚刚启动的 Nginx 容器,新启动一个

先删除之前启动的 nginx 容器:

docker rm -f nginx 

成功后,回到配置文件的主目录,执行:

docker run -itd -p 80:80 --name mynginx \ -v /Users/metrodata/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /Users/metrodata/nginx/conf.d:/etc/nginx/conf.d \ -v /Users/metrodata/nginx/logs:/var/log/nginx \ -v /Users/metrodata/nginx/html:/usr/share/nginx/html \ --privileged=true nginx

参数说明:

  • -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 服务上:Docker安装和搭建Ngnix环境,并配置反向代理插图5

如果容器启动不成功或者访问地址访问不了,就查看一下启动日志:

docker logs -f nginx的容器id

Docker安装和搭建Ngnix环境,并配置反向代理插图6 根据日志内容做相应的处理

原文链接:https://blog.csdn.net/weixin_44786530/article/details/123326438

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