目前的工作在搞 openresty / nginx 这块,产品稳定,需求也很小,都是改一些配置和 lua 脚本,空闲时候比较多。想系统的学习一下 openresty / nginx ,看了一些书、文章和视频。然后读源码,画流程图、活动图、状态图。于是产生了用 golang 把 nignx 重写一遍想法,主要用于学习。
1
wonderfulcxm 268 天前 via iPhone
厉害
|
2
Yoruno 268 天前 via Android 3
为什么不用 rust?
|
3
wheeler 268 天前 via iPhone
那是不是事件驱动都自己写啊
|
4
yumusb 268 天前 2
给你两个月的时间 抓紧时间发布 (doge)
|
5
0o0O0o0O0o 268 天前 3
|
6
Albertcord 268 天前 1
期待,但这种底层好像用 rust 写更好?不是说 rust 是 C++的平替吗? nginx 就是用 c 写的吧
|
7
drymonfidelia 268 天前 11
目前的工作在搞 linux 这块,产品稳定,需求也很小,都是改一些配置和 bash 脚本,空闲时候比较多。想系统的学习一下 linux ,看了一些书、文章和视频。然后读源码,画流程图、活动图、状态图。于是产生了用 golang 把 lniux (
楼主的 nginx 也是拼错的)重写一遍想法,主要用于学习。 |
8
dorothyREN 268 天前
golang 运行时,需要垃圾回收。不合适
|
9
lesismal 268 天前
基于 runtime 、标准库 Conn ,caddy 开销太大,根本干不过 nginx
不用 runtime 自己手撸 poller 性能也干不过 nginx 、但是好在 golang 方便开发 |
10
lesismal 268 天前
支持 OP 用 golang 搞搞看!
但这种基础设施,我也投 rust ! |
11
millet230413 OP @0o0O0o0O0o 我知道 caddy ,之前的公司用过这个,主要就是想通过这种方式来学习 nginx ,不然光看不做假把式。
|
12
millet230413 OP @Yoruno 没碰过 rust ,公司业务用 golang 这块做的,我之前做业务部分,后来调过来做网关相关的产品,同时不想把 golang 丢下,就想用 golang 来实现。
|
13
millet230413 OP @drymonfidelia 真大佬,我主要就是用这种方法来学习 nginx ,以及网关相关的知识。我想着能在写的过程中把相关的知识点都摸一遍,这样以后产品出什么问题,能知道从哪里切入。
|
14
millet230413 OP |
15
millet230413 OP 事件驱动肯定是用操作系统的
|
16
Yoruno 268 天前 via Android
@millet230413 我也是主 go ,最近再看 rust ,感觉 rust 特性太多了,长时间不用就忘记了
|
17
mokiki 268 天前
learn golang the crazy away
|
18
dayeye2006199 268 天前 via Android
不如看看 caddy
|
19
lesismal 268 天前
|
20
chaleaochexist 268 天前
开源吗? 地址?
|
21
realJamespond 268 天前
nginx 最大特点就是自己搞了一套内存池吧,用 golang 和 rust 没必要搞这个了,其他都差不多都是调 epoll
|
22
chesha1 268 天前
cloudflare 不是用 rust 重写了一个自己内部的 nginx 吗?这种需求用 rust 确实更好
|
23
vincent7245 268 天前
我也觉得 rust 更好,自从学会了 rust 我看到啥都想用 rust 重写一个
|
24
pastel 268 天前
这个工程量是不是太大
|
25
tool2d 268 天前
我也写过类似的网站服务器,运行效率很低。
主要能学到一些知识,比如 SSL 详细的握手流程,加密流程,还有签名认证之类的。 |
26
YsHaNg 268 天前
|
27
YUX 268 天前
看了楼上的发言,感觉又可以入门 rust 了
|
28
HaroldFinchNYC 268 天前
@tool2d 要是运行效率很高,你就可以卖钱了
|
29
kkk9 268 天前
😅 nginx 通过社区贡献已经基本优化到最佳了,除非是有特定需求,如 aws 网关、cf 节点内联,不然怎么样也不会超越 ngx 的
|
30
kkk9 268 天前
|
31
gowk 267 天前
可以参考下 C# 实现
https://github.com/microsoft/reverse-proxy |
32
millet230413 OP 呃,看了大家的回复,可能是误解了我的初衷,我并不是想要复制一个这样的产品(事实上已经有类似 nginx 这样优秀的网关产品了,比如上面大家说的 caddy ),我是想通过这种方式来学习 nginx ,学习里面的设计思想(这么优秀的产品肯定有很多很多值得学习的地方),学习处理请求的各个阶段和流程(把一个请求合理的划分成多个阶段,这种工程思维本身就有很多值得学习的地方),学习里面的网络知识(肯定有很多我未知的盲点在里面)。
|
33
ingramyang 267 天前
有那个时间还不如去看 caddy 的源码
|
34
wws2023 267 天前 via Android
学着学着发现 nginx 很多功能都是加模块的
|
35
deorth 266 天前 via Android
道理我都懂,可是为什么 nginx 不支持 abstract unix socket
|
36
julyclyde 265 天前
我觉得你 *仅仅是* 想学 golang 而已
这事看起来和 nginx 没啥关系 |