在今天的网络安全环境下,对root账户禁用密码登录并启用密钥认证,不是可选的"优化",而是必须的"基础安全措施"。这是保护服务器不被自动化攻击和暴力破解的第一道、也是最有效的防线。
作者:AlbertWen
添加时间:2025-12-13 17:40:57
修改时间:2025-12-13 21:44:19
分类:01.Linux基础
编辑
脚本功能:
- 一键申请SSL证书
- 关闭防火墙/放行端口(80端口)
- 选择SSL证书颁发机构(增加申请成功率)
- 证书自动续期
- 申请失败,删除残留文件,然后重新申请
你别看指针听起来吓人,其实在 Go 里它就是——方便、省内存、提高性能、减少数据拷贝… 而且 Go 把它“阉割”得挺狠,根本不像 C 那种能把人吓到怀疑人生的级别。
当你编写一个函数时,返回值应该定义为 T(值)还是 *T(指针)?
这个选择不仅关乎性能(内存分配),更关乎代码的安全性和语义。在这篇文章中,我们将通过 3 个典型的编程场景,为你提供一套清晰的决策框架。
- 使用 Trie 树实现动态路由(dynamic route)解析。
- 支持两种模式
:name和*filepath,代码约150行。
- 将
路由(router)独立出来,方便之后增强。 - 设计
上下文(Context),封装 Request 和 Response ,提供对 JSON、HTML 等返回类型的支持。 - 动手写 Gee 框架的第二天,框架代码140行,新增代码约90行
- 简单介绍
net/http库以及http.Handler接口。 - 搭建
Gee框架的雏形,代码约50行。
大部分时候,我们需要实现一个 Web 应用,第一反应是应该使用哪个框架。不同的框架设计理念和提供的功能有很大的差别。比如 Python 语言的 django和flask,前者大而全,后者小而美。Go语言/golang 也是如此,新框架层出不穷,比如Beego,Gin,Iris等。那为什么不直接使用标准库,而必须使用框架呢?在设计一个框架之前,我们需要回答框架核心为我们解决了什么问题。只有理解了这一点,才能想明白我们需要在框架中实现什么功能。
核心原理:Go 的方法接收器「值 / 指针」自动转换
Go 语言对方法调用做了语法糖优化:调用方法时,无论接收器(Receiver)定义为值类型还是指针类型,Go 会自动完成「值→指针」或「指针→值」的转换(只要符合可寻址规则)。
mux 是 multiplexer(多路复用器)的缩写。
在 Go 的 ServeMux 中,其核心作用是将多个 HTTP 请求路径(及其对应的处理器)“多路复用”—— 接收客户端的 HTTP 请求后,根据请求的 URL 路径匹配到对应的处理器函数,实现一个服务器对多个请求路由的统一管理,就像 “交通枢纽” 一样分发请求。