我的服务器就 512M 内存,想跑一个非常简单的 Web 框架,当然也得有数据库和网页服务器这样的
需求大概就跑一个极少几个人访问的 API 服务,能满足最基本的 POST GET 数据库增删改就成,学习门槛可不要太高。
请问哪些搭配能符合这样的,最好是 Python,PHP 我也可以看看,谢谢各位!
我的服务器就 512M 内存,想跑一个非常简单的 Web 框架,当然也得有数据库和网页服务器这样的
需求大概就跑一个极少几个人访问的 API 服务,能满足最基本的 POST GET 数据库增删改就成,学习门槛可不要太高。
请问哪些搭配能符合这样的,最好是 Python,PHP 我也可以看看,谢谢各位!
|
christopheredwarJul 16, 2021
1
flask
|
|
0ZXYDDu796nVCFxqJul 16, 2021
2
API 不是很耗性能(CPU, 内存)的话,你这个量其实不需要考虑占用资源的问题
|
|
Rache1Jul 16, 2021
3
云函数不更合适吗 😃
|
|
learningmanJul 16, 2021 via Android
4
500m 已经很大了,人家 64m 的都能跑
|
|
tttttv2Jul 16, 2021
5
肯定 Node.js 呀,koa, express 简单小巧,或者复杂一点的 egg.js
|
|
ThomasTrainsetJul 16, 2021 via iPhone
6
512 已经足够了,几个人访问,跑啥都没问题
|
|
snowfuckJul 16, 2021
7
加点 swap 也行,不用太担心,数据库可以用 sqlite
|
|
8
好的,谢谢各位,我研究研究
|
|
fkdogJul 16, 2021
9
一般量级的 web 服务压力都体现在数据库等网络 IO 上.
web 框架资源什么的其实挺无所谓的. |
|
10
FastAPI
|
|
blockminJul 16, 2021
11
fastapi 一把梭
|
|
jslangJul 16, 2021
12
fastapi 不错,又快又 restful
|
|
13
楼上推荐 asyncio 框架的可别了,asyncio orm 至今没有一个能打的。还是用 django 、flask 、bottle 这种同步框架吧。
|
|
46foJul 16, 2021
14
http.HandleFunc("/", index)
http.ListenAndServe(":80", nil) |
|
SuperMildJul 16, 2021
15
我也是用 512M 的服务器,跑着大概 5 个没啥访问量的网站,都是用 Go 写的,估计再加几个都没问题。
你只跑一个小网站的话,完全不需要考虑资源问题,任何语言任何框架都跑不满 512M 。 |
|
luke2sweetJul 16, 2021
19
推荐我一个自己的,gin+mysql,go 打包后就 10 几 m 的二进制包,丢服务器上去就能直接运行了,如果嫌 mysql 太大可以换成 sqlite
https://github.com/lukedever/api-scaffold |
|
20
@luke2sweet 收藏了,谢谢
|
|
wizzerJul 16, 2021
22
|
|
keepeyeJul 16, 2021
23
php 可以试试 lumen,包含数据库和 orm
python 可以用 tornado,不包含数据库,可以直接用 pymysql,反正你没几个访问量 |
|
24
Sinatra http://sinatrarb.com/
|
|
labulaka521Jul 16, 2021
25
数据库记着用 sqlite
|
|
jslangJul 16, 2021
27
数据库直接 Redis 也可吧,需要关系数据库的话可以 sqlite,或者其它云 mysql 啥的
|
|
yEhwG10ZJa83067xJul 16, 2021
28
php 的话 ci
|
|
jin7Jul 16, 2021
29
go php
|
|
also24Jul 16, 2021
30
『能满足最基本的 POST GET 数据库增删改就成』
那还上框架干啥,直接裸的 php 呗 |
|
hushaoJul 16, 2021
31
python 的话,tornado+sqlite 裸跑,直接 80 端口或者想加一层 nginx 也可以,记得定期重启服务。
|
|
lesismalJul 16, 2021
32
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) } ``` |
|
GG668v26Fd55CP5WJul 16, 2021 via iPhone
33
框架倒还好,只要不是 Java 那些重量级的。我以前在搬瓦工 128m 内存的小鸡上还能跑 WordPress,唯一的问题是 mysql 经常 oom 。
|
|
rationa1cuzzJul 16, 2021
34
python 的话 flask 学习成本很低
|
|
fansfansJul 16, 2021
35
建议 flask + sqlite3 文档全 demo 多 mysql 有点吃内存
|
|
36
dotnet5 试一下, 绝对干翻楼上说的这些
|
|
d5Jul 16, 2021
37
推荐使用 fastapi 大佬打包的 docker 镜像,镜像大概 90M,配合 Gtihub Action 做 ci/cd 。性能也不错。
https://github.com/tiangolo/meinheld-gunicorn-flask-docker/tree/master/docker-images 测试站点: https://surface.wiki/ |
|
yungo8Jul 16, 2021 via Android
38
512 可能就数据库比较吃紧,我 1g 的树莓派跑了 flask 还跑了另外的 python 脚本 mysql syncthing docker,也能正常用
|
|
ttynJul 16, 2021
39
Golang 使用 gin 大概 6M 左右
Node.js 使用 Excpress 大概 15M 左右 dotnetcore 大概 25M 左右 这些都是基础框架启动时的内存,加载 Mysql 数据调用,内存大概增加 10M 的样子,如果还要加其它插件,就不好说了 Golang 是真的小,使用 Alpine 构建镜像也只有 20M 左右 |
|
seakingiiJul 16, 2021
40
占用资源少,首先 是 C ,C ++ ,RUST,其次是 GOLANG
|
|
41
我自己会选择 .NET 5 ,它本身就是自带框架,数据库用文件型的 LiteDB,简单好用
|
|
wuwukai007Jul 16, 2021
42
服务器预装 python,flask 10 行起服务
|
|
misaka19000Jul 17, 2021
43
Flask + uWsgi + SQLite 最简单的方案
|
|
treizeorJul 17, 2021
44
可以跑个 frp 映射本地的服务出去
|
|
narmgalaxyJul 17, 2021
45
建议使用 vercle,不用服务器.
|
|
yizmaoaaJul 17, 2021
46
如果用 Java 的话可以用 Vert.x,然后用 Graalvm 打包
|
|
fox0001Jul 17, 2021 via Android
47
512MB 已经非常充裕了。直接考虑 MariaDB + Python3 。至于是 Python3 的哪个 Web 框架,都不是问题。我的 VPS,256MB 内存,照样跑 Blog 、私人 web 服务等
|
|
encroJul 17, 2021
48
|
|
encroJul 17, 2021
49
不用框架,直接用 headless cms ?
|
|
cydJul 18, 2021
50
? 512m 很大了。我直接跑了 java spring boot + mariaDB + nginx 。还有那个不可描述的东西。
记得开 swap 就行。我搞了 1G 。 |
|
beyondexJul 18, 2021 via Android
51
.NET Core 5
|
|
threeEggs123Jul 18, 2021 via Android
52
aws lambada,然后在上面写 python,按量付费,外面套一个 api gateway 。很便宜,每个月还有免费的额度。
|
|
cloverzrg2Jul 19, 2021
53
go 的 gin+sqlite3 (几个人访问没啥问题,而且可以随时切到 mysql ),内存占用不会超过 10M 。你说的网页服务器,可以不要,除非你知道你想干啥(多站点路由配置、ssl 证书等需求)
|
|
HUNYXVJul 19, 2021
54
|
|
NCEJul 19, 2021
56
512MB 就老老实实用 php 把,nginx+mysql+slim 之类的轻框架都没什么压力
|
|
aruJul 19, 2021
57
php 很合适的
|