【发布时间】:2017-12-15 04:11:48
【问题描述】:
我是 docker 新手,我正在尝试从 https://hub.docker.com/_/nginx/ 运行 nginx
- 我拉了图片
docker pull nginx
- 我正在运行容器
docker run --rm --name=some-nginx -p 8080:80 nginx
但是当我在本地机器的浏览器中打开 localhost:8080 时,总是得到 http 400。来自 docker 输出的日志:
172.17.0.1 - - [14/Dec/2017:23:07:11 +0000] "\x16\x03\x01\x00\xB5\x01\x00\x00\xB1\x03\x03\x81e|u\x93\xFC`Qo\xC8\xE6y\x18{%\x83\x8C\xC2a\xC93V\xB5;\xC0V\xDC\x10{\xC9)X\x00\x00\x1E\xC0+\xC0/\xCC\xA9\xCC\xA8\xC0,\xC00\xC0" 400 173 "-" "-" "-"
怎么了?我检查了容器内的 nginx (curl localhost),它工作正常。
谢谢。
【问题讨论】:
-
它看起来不像 Nginx 或代理问题。错误 4xx 表示客户端未将正确的数据发送到服务器进行处理。如果您发送代码请求和服务器处理,我认为我们可以为您提供更多帮助。
-
我不知道。这是一个来自 nginx 的静态页面。我不需要发送数据,只需获取 localhost:8080 的请求
-
状态页面应该只是告诉你错误(当你想到网络代理时)。错误 4xx 告诉您来自 web 的数据正在通过 Nginx 传递,其中一些数据正在到达您的服务器处理程序。这意味着您的服务 (localhost:8080) 不知道如何解释这些数据。我认为你应该提供更详细的案例描述。
-
法比亚诺,感谢您的帮助。我只是按照指南 hub.docker.com/_/nginx 没有自定义配置的新 nginx 安装。我只想查看来自 nginx 的服务页面并了解它是如何工作的(我的意思是 docker 和 nginx 容器 -> 本地机器)。
-
您可以打开
http://localhost:8080而不仅仅是localhost:8080。如果您不指定,浏览器可能会假定为https。
标签: macos docker nginx networking docker-for-mac