如果一台服务只部署一个用 golang,开发的 web 服务,还是否有必要使用 nginx
主要看你开发的 golang web 服务是否需要用到 Nginx 的功能点。
比如用 Nginx 绑定域名,转发请求、用 Nginx upstream 做应用层的负载均衡、做 url hash 转请求等等。
假如你的 web 服务是内部服务,很多时候可以不用 Nginx。
另外本人测试过golang作为web服务器解析https的性能不如nginx方向代理到后端的golang http 按照互联网的的趋势https将慢慢取代http了
caddy的速度我也测试过没有nginx的性能强
有必要,因为Nginx是专业的完备的HTTP/HTTPS服务器,像很多服务如PHP-FPM,Java Tomcat,Node普遍都躲在Nginx后面跑,这样做的好处就是后端语言只处理自己的请求,不需要处理各种静态资源(img/css/js/file)的请求,比如用户下载一个大文件,如果是后端语言自己处理,那肯定会拖累应用性能,但如果委托给Nginx(X-Accel-Redirect: file_path
),Nginx就会用自己的AIO线程池来实现大文件下载支持,就不需要后端语言费力去折腾.
8 回答3.8k 阅读
2 回答2.7k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
4 回答1.9k 阅读
1 回答1.4k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
当然需要。
其他都不说,
1、静态资源 css,js,img 的就需要 nginx
2、nginx 有很多成熟的插件,比如过滤 IP,比如重定向,比如。比如不出来了。反正很多
当然,你不想使用,就是开个 go 的 web 服务,也是可以的。
我说有需要使用,就要被踩么。
那我是不是要回答,想用就用,不想用就别用,比较好一点 ?
各抒己见罢了。