将项目 Next.js 升级后,通过 Docker 部署无法访问到服务,通过 docker logs id
检查日志,发现没有任何反应,甚至一个访问请求都没看到。
-
一开始怀疑是打包的问题,将 Docker 容器中的服务文件全部拉下来,在本地跑..诶嘿~正常运行...排除打包问题
-
检查启动日志:
ready started server on 127.0.0.1:3000, url: http://127.0.0.1:3000
上一个版本的启动日志:ready started server on localhost:3000, url: http://localhost:3000
搜了下 127.0.0.1
和 localhost
的区别:
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
————————————————
版权声明:本文为CSDN博主「席飞剑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xifeijian/article/details/12879395
到 Next.js 官网查看 Changelog,果然啊,你小子!!!
Core Changes
Example Changes
- Update Docker example to remove HOSTNAME: #54102
查看官方 Docker 打包文件 https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile
==>> set hostname to localhost
# set hostname to localhost
ENV HOSTNAME "0.0.0.0" # 原来是 localhost
标签:Node,127.0,0.1,18,无法访问,网卡,3000,Docker,localhost
From: https://www.cnblogs.com/CloverYou/p/17650886.html