V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
asuraa
V2EX  ›  程序员

超小型 vps web 服务器语言和框架怎么选择?

  •  
  •   asuraa · 2022-03-16 18:10:40 +08:00 · 6192 次点击
    这是一个创建于 770 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前跟风买了一些很弱鸡的小服务器 超售严重的 1 核心 外加 128m 的内存 这种小服务器想做个简单的动态 web 网站 用什么语言和框架比较合适? php 原生撸? java 是不考虑了 这点内存不够启动 jvm 的 或者是 go 之类的?

    69 条回复    2022-03-20 18:54:23 +08:00
    kidonng
        1
    kidonng  
       2022-03-16 18:22:35 +08:00 via Android
    能不动态尽量别动态吧...JVM 和 Go 肯定别了,可以考虑 Lua 或者 JS
    数据库 sqlite ,也上不了更多东西了
    kkocdko
        2
    kkocdko  
       2022-03-16 19:26:58 +08:00   ❤️ 1
    看你会什么咯,看你提到了 php ,那就用 php 好了。
    内存占用大致排序:Java>NodeJS>Golang/PHP>Rust/C/C++
    panzhc
        3
    panzhc  
       2022-03-16 19:28:35 +08:00   ❤️ 2
    Openresty 用 Lua 连接 Sqlite ,有 Web 开发框架。
    westoy
        4
    westoy  
       2022-03-16 19:32:16 +08:00
    拿来 FQ 或者反代吧, 除非完全不在乎数据啊, 不然超卖不止卖内存和 CPU 的, 还能超卖硬盘的, 别硬盘光了直接写入出错数据炸掉.....
    Tink
        5
    Tink  
       2022-03-16 19:38:56 +08:00 via Android
    nginx 反代,源站再买一台
    geekvcn
        6
    geekvcn  
       2022-03-16 19:47:10 +08:00   ❤️ 9
    直接扔了吧,免费主机都比这配置强。或者搭建备用梯子
    Kasumi20
        7
    Kasumi20  
       2022-03-16 19:49:45 +08:00
    上 Rust
    pengtdyd
        8
    pengtdyd  
       2022-03-16 19:56:26 +08:00
    我说 C 应该没人反对吧
    cybird
        9
    cybird  
       2022-03-16 20:43:31 +08:00
    这点内存。。直接上 CPP 或者 Rust 吧,别想着 java 、NodeJS 之类的了
    learningman
        10
    learningman  
       2022-03-16 20:48:19 +08:00   ❤️ 2
    64m 都有人能 nginx+mysql+php-cgi ,相信自己(
    wonderfulcxm
        11
    wonderfulcxm  
       2022-03-16 20:58:33 +08:00 via iPhone
    我以前搬瓦工就这种配置,放了个 Wordpress ,PHP 可以,mysql 不太行,调到最低配置运行一段时间都会 oom ,为此还专门写了个监控脚本重启 mysql
    shiny
        12
    shiny  
       2022-03-16 21:05:19 +08:00
    并发不高的话也不是不能用,做下 swap ,调低空闲时的进程数。访问量大的时候就卡一点。
    misaka19000
        13
    misaka19000  
       2022-03-16 21:10:41 +08:00
    python 啊,Flask 加 sqlite
    kran
        14
    kran  
       2022-03-16 21:22:20 +08:00 via Android
    可以 uwsgi+lua
    debuggerx
        15
    debuggerx  
       2022-03-16 21:24:43 +08:00 via Android
    dart+pg 可以
    wccc
        16
    wccc  
       2022-03-16 23:13:16 +08:00 via iPhone
    rust sqlite
    yeqizhang
        17
    yeqizhang  
       2022-03-16 23:17:38 +08:00 via Android
    go 可以的,数据库 sqlite 。
    实在不行就装个 frps 反代你家的服务呗
    IvanLi127
        18
    IvanLi127  
       2022-03-16 23:22:31 +08:00 via Android
    除了做反向代理,就只能做内网穿透了。。。建议家里架服务 ,用这 vps 反向代理
    ByteCat
        19
    ByteCat  
       2022-03-16 23:28:13 +08:00   ❤️ 1
    可是现在已经 2202 年了(
    十年前我这么玩过
    knightdf
        20
    knightdf  
       2022-03-16 23:29:39 +08:00
    nginx+lua
    JustSong
        21
    JustSong  
       2022-03-16 23:33:31 +08:00 via Android
    Go + SQLite
    BrettD
        22
    BrettD  
       2022-03-16 23:36:52 +08:00 via iPhone
    Go 就算了,在 AWS T4g nano 用 Caddie 服务一个静态网站居然占了几百兆内存然后被 OOM kill 了,换成 nginx 之后内存占用才只有 7MB 。
    tozp
        23
    tozp  
       2022-03-16 23:45:02 +08:00
    这点内存还是别整动态网站了,用 Hugo 生成个静态的吧,够用了。
    woorz
        24
    woorz  
       2022-03-17 00:36:46 +08:00
    良心云这么良心,不支持一下?
    Dart
        25
    Dart  
       2022-03-17 00:43:57 +08:00
    好奇买这么小的干嘛?还超瘦。
    asuraa
        26
    asuraa  
    OP
       2022-03-17 01:23:17 +08:00
    @ByteCat 好玩啊

    @woorz 我买的 ruvds 的俄罗斯小机器

    @Dart 买来玩啊。
    asuraa
        27
    asuraa  
    OP
       2022-03-17 01:23:32 +08:00
    @knightdf lua 写起来太蛋疼了 感觉很弱鸡
    smallgoogle
        28
    smallgoogle  
       2022-03-17 02:54:04 +08:00
    无脑 php ?
    janxin
        29
    janxin  
       2022-03-17 07:37:52 +08:00
    反正静态内容无脑 Nginx ;

    需要动态内容,PHP 可以; Go 量小也行,但是访问多了容易 OOM ; Java 就不用说了,肯定 OOM ; Node 也肯定 OOM 。
    defunct9
        30
    defunct9  
       2022-03-17 08:41:06 +08:00   ❤️ 1
    我的小 vps ,跑了 journey(go 写的兼容 node ghost 的博客),quagga(bgp peer ),trojan-go (你懂得),很好用
    bthulu
        31
    bthulu  
       2022-03-17 08:41:48 +08:00
    上 C 语言或者汇编
    0o0O0o0O0o
        32
    0o0O0o0O0o  
       2022-03-17 08:55:44 +08:00 via iPhone
    这种我可能只考虑写一些 iptables 规则…
    ersic
        33
    ersic  
       2022-03-17 09:13:21 +08:00   ❤️ 1
    语言都差不多,关键是数据库,本机的话估计只能 sqlite 了
    knightdf
        34
    knightdf  
       2022-03-17 09:24:09 +08:00
    @luodaoyi 弱鸡倒不弱鸡,就是轮子很少
    momocraft
        35
    momocraft  
       2022-03-17 09:27:07 +08:00
    有的路由器都比这内存多
    zyq2280539
        36
    zyq2280539  
       2022-03-17 10:47:25 +08:00
    PHP
    ihciah
        37
    ihciah  
       2022-03-17 11:07:49 +08:00   ❤️ 1
    都用这种机器了肯定不在意性能,那 swap 记得拉满。
    OoGKoO
        38
    OoGKoO  
       2022-03-17 12:31:31 +08:00
    Nginx+Gunicorn+Python Flask
    sadfQED2
        39
    sadfQED2  
       2022-03-17 12:49:08 +08:00 via Android
    @bthulu 汇编写网站可还行
    hwdef
        40
    hwdef  
       2022-03-17 15:43:07 +08:00   ❤️ 2
    nginx 也大,,,上 lighttpd
    flyz
        41
    flyz  
       2022-03-17 15:44:44 +08:00
    你可能需要 debian8+caddy1+php5.6+sqlite
    我除了跑几个 typecho ,还有内存安装个 x-ui 。
    flyz
        42
    flyz  
       2022-03-17 15:46:32 +08:00
    flyz
        43
    flyz  
       2022-03-17 15:56:23 +08:00   ❤️ 1
    我买了个 gullo 的 128m 内存小鸡,按照上面的教程,搭建了环境还挺好用,
    内存占用也不高,caddy1 默认支持 ipv6 ,而且功能还很多,比 lighttpd 用起来简单多了。
    [![qC84II.png]( https://s1.ax1x.com/2022/03/17/qC84II.png)]( https://imgtu.com/i/qC84II)
    nbweb
        44
    nbweb  
       2022-03-17 16:33:33 +08:00
    128M 内存跑过:debian+php+mysql+nginx ,完全没啥问题,挂个小流量博客也不是不行。
    HiCode
        45
    HiCode  
       2022-03-17 16:54:23 +08:00
    https://redbean.dev/

    试一下,lua+sqlite ,最近看到某个 lua 大咖基于这个写了一个 web 框架( https://github.com/pkulchenko/fullmoon ),才发现有这么超级小的项目。
    Xusually
        46
    Xusually  
       2022-03-17 17:39:01 +08:00
    OpenResty / Nginx+Lua
    C/CPP + CGI
    PHP 搞个低配的脚手架或者原生开撸
    zyy314680012
        47
    zyy314680012  
       2022-03-17 17:51:16 +08:00 via Android
    脚本语言问题都不大吧
    xxfye
        48
    xxfye  
       2022-03-17 17:58:43 +08:00   ❤️ 1
    go 的内存占用不大吧,如果只是个人网站,就 go 好了。
    如果对外公开 API ,Rust
    mmdsun
        49
    mmdsun  
       2022-03-17 18:32:48 +08:00
    go 或者 c# 这两占用都很低。CloudNative 持很好。
    squirrelBdg
        50
    squirrelBdg  
       2022-03-17 18:39:11 +08:00
    内网穿透 自己开隧道
    AstroProfundis
        51
    AstroProfundis  
       2022-03-17 18:40:12 +08:00
    完全可以跑得起 wordpress, 把 mysql 和 php 的配置压一下,不要承受太高并发没什么问题
    momooc
        52
    momooc  
       2022-03-17 18:40:46 +08:00 via Android
    别动态了,静态还能用一下。
    natforum
        53
    natforum  
       2022-03-17 18:41:07 +08:00
    一个基于 OpenResty 的 lua 的 web 框架
    https://github.com/sumory/lor
    chavyleung
        54
    chavyleung  
       2022-03-17 18:45:05 +08:00
    我跑个题,申请 oracle 永久免费的 4c16g 不香吗,为什么要为为难自己。
    docx
        55
    docx  
       2022-03-17 18:59:41 +08:00 via Android
    办法肯定有,但请不要折磨自己
    Kaiyuan
        56
    Kaiyuan  
       2022-03-17 19:58:55 +08:00
    我在跑 Wordpress ,PHP 闲置 5 线程以下。
    BrettD
        57
    BrettD  
       2022-03-17 20:12:14 +08:00 via iPhone
    @chavyleung oracle 那个“免费主机”坑爹的,运气不好的话毫无征兆就被删机丢数据了
    findex
        58
    findex  
       2022-03-17 20:19:42 +08:00   ❤️ 1
    lighttpd + cpp/php 简单自己用一下是没啥问题的
    Java, Python, Go 这类的就不要想了。
    建议适当调整 swap 分区,设置 swappiness 为 75%💁🏼
    128MB 内存和我买的几十块的路由器一样内存😂
    findex
        59
    findex  
       2022-03-17 20:20:53 +08:00
    @BrettD oracle 删库但不跑路,毕竟免费,oracle 自己说了算。
    patx
        60
    patx  
       2022-03-17 20:26:48 +08:00
    python+aiohttp
    Zhouisme
        61
    Zhouisme  
       2022-03-17 20:34:06 +08:00 via Android
    这机器我曾买过,搭建过 blog 。php SQLite Nginx typecho

    用 Go/C++就很棒,简单的动态直接不用框架了。把 html 打包进二进制里运行就好了。一定要加 swap 。用 golang 连 Nginx caddy 都不用,比较香吧,关键写的快呀。
    xsen
        62
    xsen  
       2022-03-17 20:34:56 +08:00
    nginx + go ( db 用 sqlite )没问题
    java/node 之类就别考虑了
    patrickyoung
        63
    patrickyoung  
       2022-03-17 20:35:31 +08:00 via iPhone
    64M 跑 LNMP 和 wordpress 都可以
    hallDrawnel
        64
    hallDrawnel  
       2022-03-17 20:40:11 +08:00   ❤️ 1
    Go 可以,因为我在路由器里跑 Go 写的 dnscrpty proxy 都没有问题
    stevefan1999
        65
    stevefan1999  
       2022-03-17 22:58:30 +08:00   ❤️ 1
    肯定是跑 Rust

    話説你不如換個服務器啦 kora
    duke807
        66
    duke807  
       2022-03-17 23:16:11 +08:00
    極小且省事的方式是:
    使用 busybox httpd 做 web 服務器(需要 https 的話可以搭配使用 stunnel )
    使用 shell 腳本做 cgi (需要上傳大文件的話可以用 qdecoder/examples/upload.c 做 cgi )

    稍微寬裕一點 shell 腳本升級爲 python 腳本,busybox httpd 也可升級爲 apache
    nicevar
        67
    nicevar  
       2022-03-17 23:50:46 +08:00
    Go 不行的,随便跑点东西就挂了,10 多年前很多 vps 都是这种配置,那个年代做垃圾站,很多用 php+access ,还是可以的,跑 MySQL 太吃力,虽然能跑,但是容易挂。
    asuraa
        68
    asuraa  
    OP
       2022-03-20 18:53:23 +08:00
    @HiCode 这个不错 哈哈我喜欢
    asuraa
        69
    asuraa  
    OP
       2022-03-20 18:54:23 +08:00
    @chavyleung 折腾一下 无聊的 java 工作中增添一些乐趣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1987 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:16 · PVG 00:16 · LAX 09:16 · JFK 12:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.