反向代理中 Nginx 的作用是什么

2016-11-04 20:36:30 +08:00
 rupert

比如我服务器开了个 http 服务,端口为 3000, 我必须用 Nginx 反代,然后外网才能访问, 在这个过程中, Nginx 的作用是什么? 如果不用 Nginx 外网就不能访问了?

4091 次点击
所在节点    NGINX
12 条回复
wevsty
2016-11-04 20:48:28 +08:00
很显然,如果你开了端口 3000 ,那么外网直接访问就必须显式标明 3000 端口号才能访问,如果想不带端口号,那么必须监听 80or443 端口。那么这里 Nginx 的作用就是帮你转发 80 的请求。
当然,你也可以直接监听 80 ,不用反向代理,这完全看你自己的选择。
使用反向代理的好处在于,有助于提高吞吐量,另外如果有需要可以方便实现均衡负载。
yidinghe
2016-11-04 21:16:42 +08:00
nginx 接受请求,然后转发给真正的服务器,并将服务器的返回结果再转发回给浏览器。真正的服务器可以是本机的,也可以是内网的其他服务器,可以是一台,也可以是多台,而 nginx 永远只要一个。
kslr
2016-11-04 21:39:14 +08:00
补充楼上两位, nginx 是异步的,比你直接监听性能高。也可以在第一层拦截静态文件,缓解后方压力。
k9982874
2016-11-04 21:56:48 +08:00
你为啥不直接用 nginx 当 web 服务器,直接在 80 端口提供服务。
如果非要在 3000 端口服务后端用 nginx ,前面挂 Squid , Varnish 解决。
skydiver
2016-11-04 22:47:57 +08:00
监听外网 ip 才能从外网访问,监听 127.0.0.1 只能内网访问,监听 0.0.0.0 内外网都能访问
rupert
2016-11-05 00:20:42 +08:00
msg7086
2016-11-05 02:56:26 +08:00
3000 端口的十有八九是在说 Ruby 或者 Python 之类的独立 Web Server 吧。
为了安全考虑,直接启动的话是无法被外网访问的。你需要手动指定监听地址,明确要求程序监听外网才行。

另外 Nginx 的目的是转发请求,把外网发来的请求转发到内网里去。
Remember
2016-11-05 04:03:53 +08:00
@skydiver 监听 127.0.0.1 只能本机访问
panda1001
2016-11-05 07:52:25 +08:00
> Django ’ s chock-full of shortcuts to make Web developer ’ s lives easier, but all those tools are of no use if you can ’ t easily deploy your sites. Since Django ’ s inception, ease of deployment has been a major goal.
https://docs.djangoproject.com/en/1.9/howto/deployment/
这是 django 官网的原话,测试服务器不要用在实际部署中,其它的框架同理也一样
skydiver
2016-11-05 07:58:51 +08:00
@Remember 笔误了……
ryd994
2016-11-05 16:17:41 +08:00
gunicron+nginx 啦
或者 gunicorn async worker 也行
网上有很多测试结果说, gunicorn 的 qps 加不加 nginx 差不多,这是不对的。 nginx 的作用在于 buffer 请求,从而减少 gunicorn 的并发。
不信用 slowloris 打一下试试?
ibigbug
2016-11-06 05:42:16 +08:00
第一, nginx 的主要作用是利用异步 io 特性提供高并发支持,还有一个基础功能是卸载 HTTPS 证书
第二, 3000 也能访问,但是你不能监听 127.0.0.1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/318133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX