go程序部署疑问,是否需要加nginx做反向代理

问题描述

最近用go gin 开发了一个api微服务接口,现在想部署到线上给app提供服务

本来计划是 让app 直接访问 http://ip:9000

可同事说应该用 nginx 做一层反向代理,这样性能会高一些 ,

这样的话部署模式就变成 app访问 http://a.com/api, nginx收到这个请求后 反向代理到本地
http://127.0.0.1:9000

疑问

1.请问 假如访问量很高的情况下, 直接访问go服务端口性能高,还是由nginx反向代理后的性能高?
2.假如 nginx 代理了go服务 性能更高,那为什么多了一层反而性能更高了,是类似 nginx和php-fpm的关系吗?

最后谢谢大佬们给解答!

阅读 4.6k
2 个回答

说错了,之所以加nginx反向代理
1:很方便实现负载均衡
2:可以方便限制请求,还有请求控制
3:虽然加了nginx 损失了一点性能,但是可以忽略不计的!!!

还有一个原因:

一般云服务器上只开放了几个常用端口(80, 443,22,23等),所以你想直接外网访问ip:port的话,还得自己手动配置入网和出网规则。如果服务部署得多了,开放的端口管理和安全都是一个问题~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题