docker run --name test --rm -p 20082:80 test
我用这个启动一个容器
是一个apahce服务
结果我发现apache是知道我用的20082端口的
只要404时候
会有提示
Not Found
=========
The requested URL was not found on this server.
* * *
Apache/2.4.38 (Debian) Server at wx.iguojin.com Port 20082
但是他的80端口也是正常工作的
这是怎么回事
因为端口号
port
也是host
的一部分,当你输入网址http://wx.iguojin.com:20082
访问服务器的时候,wx.iguojin.com:20082
会作为Host
整个被发送给http server,apache当然就可以解析到你的实际访问端口了。你用浏览器的调试窗口,看看这个访问请求的
Request Header
部分的Host
字段就知道了。