有个轻业务,访问量不大,后端已经用 koa 写了,现在需要提供图片及其它文件给前端,请问可以直接在 koa 中返回文件的 stream 吗?
如果文件比较大( 100M 以内)是否还合适?
以前都是由 nginx 提供,现在为了省一个流程,想用 koa 直接做 http server
如果文件比较大( 100M 以内)是否还合适?
以前都是由 nginx 提供,现在为了省一个流程,想用 koa 直接做 http server
1
Danswerme Sep 9, 2020 via Android
一般不都是 nginx 做静态资源服务器,然后其他请求用 proxy_pass 转发给后面的 koa 之类的么?你这是直接用的 koa ?
|
2
haleyao Sep 9, 2020
|
4
opengps Sep 9, 2020 via Android
静态资源服务器。。直接一个站点目录就是了,何必用 node 绕一层?
|
5
zengming00 Sep 9, 2020
大胆用,出问题再说
|
6
xcatliu Sep 9, 2020 via iPhone
可以的,我在司内搭了一个类似 gh-pages 的服务,就是用 koa 做静态服务,日访问挺大的,还有人放视频,都用起来没问题。
|
8
wangyzj Sep 9, 2020
nginx 不就行了?
|
11
foru17 Sep 10, 2020
建议 nginx,或者静态资源放外部 cdn,哪怕丢其他服务器都好。
|
12
cat OP @wunonglin
根据上面的链接,node.js 性能更好; 我发帖问的目的就是想知道,就算 node.js 比 nginx 差,是差多少?在哪种场景差最多?根据对比来决定用不用 node.js 。 回个贴说用 nginx 是很容易,但项目需要只有自己清楚,如果各位在用 node.js 做类似事情的时候踩过坑,或者了解过一些对比,非常欢迎给出来 互相讨论 互相参考,我相信比一句用 nginx 更有价值。 |
13
duan602728596 Sep 10, 2020 via iPhone
用呗,访问量不大的话,还没到考虑性能的时候
|
14
shynome Sep 10, 2020 via Android nodejs 单线程只吃一个核比不得 nginx 吃满的
|
16
xcstream Sep 10, 2020
放视频的话 好像不能拖动进度条
|
17
sologgfun Sep 10, 2020
访问量不大肯定可以哎
|
19
SoloCompany Sep 10, 2020 纯静态资源服务走的是 sendfile, 吃的是 io, 多核性能提升的意义不大, 直接用 node 没啥大问题
|
20
janxin Sep 10, 2020
访问量不大跑个什么服务都行的,没这么多需要考虑的
|
21
lijialong1313 Sep 10, 2020
我认为可能是 node 不好做安全处理,nginx 是专业的 web 服务器的话可能 nginx 在安全方面可能更好……这是我猜测
|
22
Mohanson Sep 10, 2020 via Android
狗头,连 node 性能更好都出来了…
|
23
jawnkuin Sep 10, 2020
OSS+CDN 一分钟搞定,就别自己写了
|
25
w3cfed Sep 10, 2020
不知道楼主技术栈是啥。搭建 Nginx 静态资源服务器没啥技术成本丫。性能还是可以的。能少?指的是。30 min 配置好。
|
26
marcong95 Sep 11, 2020
直接 caddy file-server ?
|
27
libook Sep 14, 2020
开头也说了是轻业务、访问量不大,基本原则就是如果没有可预见的问题或明确的需求,顺不顺手就会成为选型的首要因素,哪个顺手直接用就好了,等遇到问题再优化或者换方案。
如果你提供文件是有业务逻辑控制的,不好直接用 Nginx 简单 host 一个目录的话,那就直接在 Koa 里搞就行了,fs readable stream 直接 pipline 到 res 的 response writable stream 就行了。 一般如果在提供静态文件访问服务上面不需要额外的业务逻辑参与的话,Linux 上直接包管理器 install nginx,然后去 /etc/nginx/ 下改一下配置文件写上你的静态文件目录的路径,有需要再加上几个 Header,这个已经比装 Node 、装包、写代码要简单一些了;要想更简单的话大多数 Linux 都预装了 python,一行 python3 -m http.server 或者 python2 -m SimpleHTTPServer 就能启动一个静态文件服务器。 而且提供静态文件访问的性能方面话还要看你的磁盘 IO 、网络速度、能提供的内存缓存大小等。 要是真的对这个性能情况好奇,可以自己做一下 benchmark,然后把结果发上来。 |
28
love Sep 14, 2020
服务地址在哪?我本地打个压测命令看看能不能撑得住 :)
nginx 有现成的网络防护,限制流量并发什么的,自己写的没有,如果有恶意用户都不用 DDOS,本机就搞死你了。 |
29
ppgs8903 Sep 29, 2020
量不大都一样,量大 cdn 。~ ~ 能问出来这种问题的,8899 量不大的。
|
30
xcstream Nov 10, 2020
视频拖拽进度条可以么
|
31
oliver2bao Nov 17, 2020
额........这种事还是 nginx 做比较合适吧,虽然 node 也能做,但是手撸一个能和 nginx 功能的都很吃力,性能的话更不用说了吧。
|
32
yodhcn Nov 20, 2020
|