为什么需要反向代理。
发布于 8 年前 作者 a304885433 15759 次浏览 来自 问答

咨询各位大大,总是看帖子里说,用pm2部署nodejs,nginx反向代理,反向代理起什么作用,旨在解决什么问题。

11 回复

server 端的node或者其他语言进程的端口号各不相同 . 比如你的server 外网ip是 xxx.xxx.xxx.xxx 前提在防火墙允许的情况下 你用外网访问每个进程的情况是一定是 xxx.xxx.xxx.xxx:port1 xxx.xxx.xxx.xxx:port2 … 这时候你有需求了 你有两个域名 你希望

  • 访问 域名A --> port1
  • 访问 域名B --> port2

这个时候 你就需要反向代理了

@netpi 嗯,这个例子很实在,我原来就好奇,一个服务器怎么绑定多个域名,如果有a.com,在90端口号上部署的程序,必须输入 a.com:90来访问。那么服务器上尽管有多个程序,只能用一个域名,不太方便。

用你的例子来说,有2个站点,分别部署2个端口号,域名A 请求到80端口,由80端口,转发到 port1,域名B请求80端口,转发到port2。这样的话,尽管只有一个80端口,但是对客户端而言,是没有任何感知的。

谢谢你的解答。

@Qiubaowei 这个讲解很生动,现在明白了些,谢谢

@liygheart 谢谢你的解答,结合楼下的解答,很有帮助,谢谢。

除此之外,nginx 可以让你的静态文件处理得更加高效

@yudawei1230 我一直把node程序和页面文件放在一起,koa.static之类的

原理就不说了,说说一些具体使用。类似nginx这种反向代理可以很好地管理你的内部的请求路由,假设你有好几个系统,分布在的多台服务器内,也有可能好几个服务都在一台服务器上。当你想做端口转发的时候,只要配置nginx就行。对于一些静态文件,直接用nginx指定目录,也挺方便。还有一种情况,就是旁路掉某些系统,这在你重构复杂系统时特别有用。

回到顶部