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