docker中nginx的location转发不生效

问题

docker创建nginx容器后,修改nginx.conf配置服务转发,始终不成功,proxy_pass配置如下
在这里插入图片描述

解决办法

需将上图中的localhost改为容器内查看到的宿主ip;
因为初始的nginx容器内无ping命令,所以需要安装,先执行docker exec -it <容器ID> /bin/bash进入nginx容器,然后执行apt-get update,然后执行apt-get install inetutils-ping安装工具,最后执行ping host.docker.internal查看宿主ip,如下图
在这里插入图片描述
最终,将localhost改为宿主ip,重启容器,即可成功转发服务
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Docker 搭建 Nginx 和 Tomcat 的步骤: 1. 安装 Docker,可参考官方文档进行安装。 2. 下载 Nginx 和 Tomcat 的 Docker 镜像,执行以下命令: ``` docker pull nginx docker pull tomcat ``` 3. 创建一个 Docker 网络,让 Nginx 和 Tomcat 可以相互通信,执行以下命令: ``` docker network create mynetwork ``` 4. 创建一个 Nginx 容器,执行以下命令: ``` docker run --name nginx -d -p 80:80 --network mynetwork nginx ``` `--name` 指定容器名称为 nginx,`-d` 后台运行,`-p` 将容器的80端口映射到主机的80端口,`--network` 指定容器所在的网络为 mynetwork。 5. 创建一个 Tomcat 容器,执行以下命令: ``` docker run --name tomcat -d -p 8080:8080 --network mynetwork tomcat ``` `--name` 指定容器名称为 tomcat,`-d` 后台运行,`-p` 将容器的8080端口映射到主机的8080端口,`--network` 指定容器所在的网络为 mynetwork。 6. 配置 Nginx,将请求转发给 Tomcat,执行以下命令: ``` docker exec -it nginx bash echo "server { listen 80; location / { proxy_pass http://tomcat:8080/; } }" > /etc/nginx/conf.d/default.conf nginx -s reload exit ``` `docker exec -it` 进入 nginx 容器,`echo` 命令将配置写入 Nginx 的默认配置文件,`nginx -s reload` 重新加载配置文件使其生效。 7. 访问 http://localhost 可以看到 Nginx 的欢迎页面,访问 http://localhost:8080 可以看到 Tomcat 的欢迎页面。 至此,Nginx 和 Tomcat 的 Docker 集成环境搭建完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值