Nginx 喜提 HTTP / 3 技术预览

在 Nginx 上总算是有官方的 HTTP / 3 实现了,恭喜恭喜。:rofl:

不再需要额外套娃 Caddy 了。

由于是高度实验性技术预览,所以 Nginx 官方没把代码合并到主线中。到 https://hg.nginx.org/nginx-quic 下载代码,编译吧。

问下,caddy 的性能跟 nginx 比起来差很多吗??我这边要求不高,用的是 caddy,感觉还可以呀

赞赞赞。。不过在国内 QUIC 效果可能不好。

我仍然在用使用 apache

如果运营商不针对 UDP,那么理论效果要比 TCP 好太多。
现在像腾讯 X 游之类的也在用 UDP 连接,减少 TCP 开销,提升效能。

并没有:stuck_out_tongue_winking_eye:。Go 的性能众所周知,我不敢质疑。
我是因为 VPS 内存紧张(运行了 Django、podman 各种容器等),才没有考虑套 Caddy。

如果你对安全性的要求不是很高的话,直接用 django 自带的 dev server 也可以吧?我现在就是这样,我的独立博客连 nginx 都没安装,用的是 gunicorn 做转发。应付一天十几个访问绰绰有余。[手动狗头]

确实如此。不过官方强烈不推荐这么做。

DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests. (And that’s how it’s gonna stay. We’re in the business of making Web frameworks, not Web servers, so improving this server to be able to handle a production environment is outside the scope of Django.)

一方面是安全因素,另一方面是这个 Server 根本就没对除开发以外的任何用途作准备。换句话说,方便一时爽,后续各种火葬场。


顺带,确定对公服务器安全性不重要?:thinking:我的服务器一天就能收到几十的恶意访问和攻击请求。

这是我刚去服务器上查看的,光今天试图访问 admin 的恶意 IP 列表:

嘛,别对我的公网 IP 有什么想法。输错 3 次密码,你的 IP 就永远连不上我服务器的任何对公服务了:rofl:

就我而言,phpmyadmin、各种 www 的备份文件和主流 CMS 路径的恶意请求天天都有。要是有一点不注意的话,服务器分分钟变成僵尸网络的跳板。

也许,还是注意点为好。

那个 django dev server 很简单,攻击面很窄。扫路径的脚本小子压根不用去管,除了多一条错误日志,出不了事。不过 django dev server 好像对多线程的处理不好,请求多了会卡住,我只在开发的时候用过。

正经服务器我用 gunicorn,这个可是专业的 python web 服务器。省得去布署 nginx. 我不信有人能攻下 gunicorn.

我的 WordPress 博客 3年 以来让人刷了 500 多个账号,一共 3000 多次失败登录
还好我租的博客没有 shell 权限,只能放个网页 php 之类的,大的安全问题不用操心,否则我感觉上线直接就变跳板了

不懂问下,要是自己的服务器,内核最新的,都用的普通用户登录,运行程序。su 用户密码炒鸡复杂,常规的端口都开着,也没弄啥防火墙,
这种去年情况下服务器的安全性如何?容易被攻破吗?

不 攻 自 破

不是特别安全。比如前一阵火过的 redis 挖矿病毒:
https://isc.sans.edu/forums/diary/Anatomy+of+a+Redis+mining+worm/23673/

就利用了一些服务器管理员缺乏安全意识,随意公开内部 redis 服务到公网的因素,使不少服务器瞬间变成挖矿肉鸡。

个人的一些小建议:

  • 了解下 fail2ban。它可以很好的抵御各种对公服务的穷举攻击。
  • SSH 禁止 root 登陆,用 TOTP 二验,并更换其端口到 > 1024 的不常见数字。这可以抵挡相当多扫描脚本对你服务器的攻击。要是觉得麻烦,还可以了解下 SSH 证书登陆。相当方便、快捷和安全。
  • 不需要的公网端口用防火墙挡下。openSUSE 默认的防火墙规则已经挡下了所有不必要的公网端口,只要你没做过开放操作,默认都是已经拦截的安全状态。
  • 千万不要试图关闭防火墙。无论任何时候,遇到任何问题。不然你会后悔的

另外,如果感兴趣的话,这里还有一些来自 Mozilla 的能有效保证登入信息安全的小提示:

php 的程序是重灾区。python 程序,如果是用 django 问题一般不大。因为 django 出厂就是非常安全的,完全不怕 SQL 注入。

你要是把 mysql, php, redis 这些服务器都开着,你这个服务器就完蛋了。我的经验是,公网服务器只开 SSH 和 http,其它的都不要开。像 redis 这种,只允许绑定到 127.0.0.1 上面,或者干脆只放 docker 内部虚拟网络最好。如果能做到,有没有防火墙问题不大。如果不能做到,防火墙一定要开。

我似乎是压根没有什么对公的数据库服务吧……
而且都是 Go 程序
我倒是想用 TOTP 作验证
SSH 我完全放弃了密码验证
用 TOTP 代替了密码
我似乎没有遇到过能登录 SSH 而没带手机的情况……
我人丢了,手机都不会丢吧……
不嫌麻烦可以用 V2 转发回环嘛
这样要橄榄 SSH,就先要橄榄 V2 吧。
大手子也做不到吧
不如把 WEB 也塞进去?
只是私人用的话