服务器1,装有nginx,ip为ip1; 服务器2,跑有node程序,ip为ip2; 现在使用服务器1配置了一个域名,通过该域名可以访问服务器2上的node程序(避免采用ip+端口) 这时候如果ping 该域名,ping的ip地址究竟是服务器1,还是服务器2呢?
我的测试结果是ping出来的是服务器1,即装有nginx的服务器 但是既然已经用nginx作了代理,使用该域名也访问的时服务器2,应该ping的是服务器2的ip啊?
求高手解释啊!
自己先顶一个
顶顶顶顶顶!
nginx反向代理。请百度一下,反向代理的工作机制
nginx只是代理服务器,ping是通过DNS查询的,不是一个概念。
@simon4546 感谢回答,新手不懂,再学习一下
@jysperm 是觉得我读书太少么,糗。。。
呃…要好好弄懂反向代理的原理啊
@alsotang 好的,一定好好研究,初学者。。。
这跟nginx有关系? 你的ping都还没到nginx这个层面
ping -->domain–>nginx–>node ping中显示的ip为解析domain的地址即nginx的地址,因为你访问的是nginx 与后面被反向代理的服务器无关
@dayuoba 谢谢!
@xujun52011 我是菜鸟,不好意思。。。
在DNS中domain绑IP,指向nginx 地址。nginx做server { } host绑定,分发给upstream的node,至于node express是否hostname绑定,这个就看你应用随意了。
反向代理的作用实际上是应用层的一种负载均衡机制了,而DNS在查询域名对应的IP的时候是不会到你的应用层的。
ping 得到的ip 应该是来自于域名解析输入的ip(CDN加速除外)
@zacard-orc 非常感谢,你解释的很清晰到位
@ringtail 谢谢你的回复!我也是正在学习中,献丑了
@satrong 是的,谢谢
@CocaCola183 加油哦,nginx常用的功能其实不多,其他的基本上只有有特殊需求才会去动。
@ringtail 我把公司的服务器搞出过两次事,都是因为nginx。。。