我的服务器就 512M 内存,想跑一个非常简单的 Web 框架,当然也得有数据库和网页服务器这样的
需求大概就跑一个极少几个人访问的 API 服务,能满足最基本的 POST GET 数据库增删改就成,学习门槛可不要太高。
请问哪些搭配能符合这样的,最好是 Python,PHP 我也可以看看,谢谢各位!
1
christopheredwar Jul 16, 2021
flask
|
2
0ZXYDDu796nVCFxq Jul 16, 2021
API 不是很耗性能(CPU, 内存)的话,你这个量其实不需要考虑占用资源的问题
|
3
Rache1 Jul 16, 2021
云函数不更合适吗 😃
|
4
learningman Jul 16, 2021 via Android
500m 已经很大了,人家 64m 的都能跑
|
5
tttttv2 Jul 16, 2021
肯定 Node.js 呀,koa, express 简单小巧,或者复杂一点的 egg.js
|
6
ThomasTrainset Jul 16, 2021 via iPhone
512 已经足够了,几个人访问,跑啥都没问题
|
7
snowfuck Jul 16, 2021
加点 swap 也行,不用太担心,数据库可以用 sqlite
|
8
Phishion OP 好的,谢谢各位,我研究研究
|
9
fkdog Jul 16, 2021
一般量级的 web 服务压力都体现在数据库等网络 IO 上.
web 框架资源什么的其实挺无所谓的. |
10
PinkRabbit Jul 16, 2021 FastAPI
|
11
blockmin Jul 16, 2021
fastapi 一把梭
|
12
jslang Jul 16, 2021
fastapi 不错,又快又 restful
|
13
abersheeran Jul 16, 2021 楼上推荐 asyncio 框架的可别了,asyncio orm 至今没有一个能打的。还是用 django 、flask 、bottle 这种同步框架吧。
|
14
46fo Jul 16, 2021
http.HandleFunc("/", index)
http.ListenAndServe(":80", nil) |
15
SuperMild Jul 16, 2021
我也是用 512M 的服务器,跑着大概 5 个没啥访问量的网站,都是用 Go 写的,估计再加几个都没问题。
你只跑一个小网站的话,完全不需要考虑资源问题,任何语言任何框架都跑不满 512M 。 |
19
luke2sweet Jul 16, 2021
推荐我一个自己的,gin+mysql,go 打包后就 10 几 m 的二进制包,丢服务器上去就能直接运行了,如果嫌 mysql 太大可以换成 sqlite
https://github.com/lukedever/api-scaffold |
20
Phishion OP @luke2sweet 收藏了,谢谢
|
22
wizzer Jul 16, 2021
|
23
keepeye Jul 16, 2021
php 可以试试 lumen,包含数据库和 orm
python 可以用 tornado,不包含数据库,可以直接用 pymysql,反正你没几个访问量 |
24
Bromine0x23 Jul 16, 2021 Sinatra http://sinatrarb.com/
|
25
labulaka521 Jul 16, 2021
数据库记着用 sqlite
|
27
jslang Jul 16, 2021
数据库直接 Redis 也可吧,需要关系数据库的话可以 sqlite,或者其它云 mysql 啥的
|
28
yEhwG10ZJa83067x Jul 16, 2021
php 的话 ci
|
29
jin7 Jul 16, 2021
go php
|
30
also24 Jul 16, 2021
『能满足最基本的 POST GET 数据库增删改就成』
那还上框架干啥,直接裸的 php 呗 |
31
hushao Jul 16, 2021
python 的话,tornado+sqlite 裸跑,直接 80 端口或者想加一层 nginx 也可以,记得定期重启服务。
|
32
lesismal Jul 16, 2021
golang
```golang package main import ( "context" "fmt" "io" "net/http" "os" "os/signal" "time" "github.com/lesismal/nbio/nbhttp" ) func onEcho(w http.ResponseWriter, r *http.Request) { data, err := io.ReadAll(r.Body) if err != nil { return } if len(data) > 0 { w.Write(data) } else { w.Write([]byte(time.Now().Format("20060102 15:04:05"))) } } func main() { mux := &http.ServeMux{} mux.HandleFunc("/echo", onEcho) svr := nbhttp.NewServer(nbhttp.Config{ Network: "tcp", Addrs: []string{":8080"}, MessageHandlerPoolSize: 256, EnableSendfile: true, }, mux, nil) err := svr.Start() if err != nil { fmt.Printf("nbio.Start failed: %v\n", err) return } interrupt := make(chan os.Signal, 1) signal.Notify(interrupt, os.Interrupt) <-interrupt ctx, cancel := context.WithTimeout(context.Background(), time.Second*3) defer cancel() svr.Shutdown(ctx) } ``` |
33
GG668v26Fd55CP5W Jul 16, 2021 via iPhone
框架倒还好,只要不是 Java 那些重量级的。我以前在搬瓦工 128m 内存的小鸡上还能跑 WordPress,唯一的问题是 mysql 经常 oom 。
|
34
rationa1cuzz Jul 16, 2021
python 的话 flask 学习成本很低
|
35
fansfans Jul 16, 2021
建议 flask + sqlite3 文档全 demo 多 mysql 有点吃内存
|
36
beginor Jul 16, 2021 via Android dotnet5 试一下, 绝对干翻楼上说的这些
|
37
d5 Jul 16, 2021
推荐使用 fastapi 大佬打包的 docker 镜像,镜像大概 90M,配合 Gtihub Action 做 ci/cd 。性能也不错。
https://github.com/tiangolo/meinheld-gunicorn-flask-docker/tree/master/docker-images 测试站点: https://surface.wiki/ |
38
yungo8 Jul 16, 2021 via Android
512 可能就数据库比较吃紧,我 1g 的树莓派跑了 flask 还跑了另外的 python 脚本 mysql syncthing docker,也能正常用
|
39
ttyn Jul 16, 2021
Golang 使用 gin 大概 6M 左右
Node.js 使用 Excpress 大概 15M 左右 dotnetcore 大概 25M 左右 这些都是基础框架启动时的内存,加载 Mysql 数据调用,内存大概增加 10M 的样子,如果还要加其它插件,就不好说了 Golang 是真的小,使用 Alpine 构建镜像也只有 20M 左右 |
40
seakingii Jul 16, 2021
占用资源少,首先 是 C ,C ++ ,RUST,其次是 GOLANG
|
41
seakingii Jul 16, 2021 我自己会选择 .NET 5 ,它本身就是自带框架,数据库用文件型的 LiteDB,简单好用
|
42
wuwukai007 Jul 16, 2021
服务器预装 python,flask 10 行起服务
|
43
misaka19000 Jul 17, 2021
Flask + uWsgi + SQLite 最简单的方案
|
44
treizeor Jul 17, 2021
可以跑个 frp 映射本地的服务出去
|
45
narmgalaxy Jul 17, 2021
建议使用 vercle,不用服务器.
|
46
yizmaoaa Jul 17, 2021
如果用 Java 的话可以用 Vert.x,然后用 Graalvm 打包
|
47
fox0001 Jul 17, 2021 via Android
512MB 已经非常充裕了。直接考虑 MariaDB + Python3 。至于是 Python3 的哪个 Web 框架,都不是问题。我的 VPS,256MB 内存,照样跑 Blog 、私人 web 服务等
|
48
encro Jul 17, 2021
|
49
encro Jul 17, 2021
不用框架,直接用 headless cms ?
|
50
cyd Jul 18, 2021
? 512m 很大了。我直接跑了 java spring boot + mariaDB + nginx 。还有那个不可描述的东西。
记得开 swap 就行。我搞了 1G 。 |
51
beyondex Jul 18, 2021 via Android
.NET Core 5
|
52
threeEggs123 Jul 18, 2021 via Android
aws lambada,然后在上面写 python,按量付费,外面套一个 api gateway 。很便宜,每个月还有免费的额度。
|
53
cloverzrg2 Jul 19, 2021
go 的 gin+sqlite3 (几个人访问没啥问题,而且可以随时切到 mysql ),内存占用不会超过 10M 。你说的网页服务器,可以不要,除非你知道你想干啥(多站点路由配置、ssl 证书等需求)
|
54
HUNYXV Jul 19, 2021
|
56
NCE Jul 19, 2021
512MB 就老老实实用 php 把,nginx+mysql+slim 之类的轻框架都没什么压力
|
57
aru Jul 19, 2021
php 很合适的
|