HTTP/3 Alpn? 为什么网站开启了HTTP3浏览器却是用HTTP/2访问?

Nginx1.25 开始开始支持HTTP/3, 当我使用最新的Chrome(116.0.0.0)访问网站,并非每次都是用HTTP/3,很多次访问同一网站还是采用HTTP/2,就如下图,是5分钟内先后两次的访问记录。

这里就引出一个问题,客户端这里专指浏览器是怎么知道要访问的网站采用的HTTP1.1、HTTP/2还是HTTP/3?

阅读更多

从Dashboard鉴权认识Kubernetes的用户认证

Kubernetes 用户认证

  1. 从Dashboard鉴权认识Kubernetes的用户认证
  2. 从签发用户证书认识Kubernetes的用户认证

Kubernetes的API准入(Access Control)分为用户认证(Authenticating)鉴权(Authorization)两个部分。鉴权是对权限的控制,来控制角色(Role)、用户(User)是否能访问对象,主要通过RBAC、ABAC实现,你大概率听说过这两种鉴权控制策略。当然鉴权不是本片讨论的重点,下面内容我们主要讨论认证部分。

阅读更多

使用UDEV处理k3s节点路由异常问题

一、出了什么问题

去年弄了一堆轻量应用服务器,搭建了一个k3s(Rancher发布的轻量版kubebernets)。k3s默认的Flannel的CNI,这个网络插件的好处就是简单,坏处就是过于简陋。每当设置网卡重启的时候flannel路由丢失(相关ISSUE),导致节点失联。

阅读更多

MacOS/IOS swift项目调用Rust库

本文主题是IOS使用Rust库。其实C/C++库操作类似,本文前半部分我将描述怎么把Rust library编译为静态/动态连接库,后半部分是怎么使用这个库。

同样的,Rust编译的库同样适用于其他平台的项目比如Android、MSVC等。

阅读更多

API的身份认证

API设计中最开始的步骤就是设计鉴权,当前这篇介绍的认证只是鉴权一部分,当然在一个权限设计不完备的系统里,这就是鉴权的全部。

HTTP(不包涵Websocket)是无状态的,所以获得认证的客户端(用户)每次发起请求,都必须携带服务端签发的Token、SessionID等信息。当然这个信息可能不是服务端签发的,比如Basic Auth就是请求携带username+password。从token携带方式上有使用http请求参数的,有使用Cookie方式,还有放到请求body中的。下文我们将分析一下各种认证方式,以及推荐的使用场景。

阅读更多

N5105 Jellyfin 硬件加速

先说结论,显卡受限于驱动原因,暂时有Ubuntu 21.04+ 以上系统可以实现,直通Windows 10绝无可能(2022/05/19)。
回到主题,最近流行各种小主机做软路由、家庭影音、Nas等系统。这些主机的CPU主要有J4125(10gen)、N5105(11gen)、N6005,其中前两款为Intel® Celeron®,后面这个款为Intel® Pentium®,10代采用14nm工艺,11代采用10nm工艺,N5105和N6005相对J4125有不错的性能提升。在性能相差不大的情况N5105要经济一些,这也是很多人被坑的主要原因,N5105有各种直通方案的折腾。

阅读更多

使用CoreDNS作为内网域名解析服务器

CoreDNS 是Kubernetes默认也是最常用的DNS工具。
内网环境下我们经常会使用一些特殊结尾的域名来却分访问环境,这些域名往往是不存在或者我们自己不是持有人,最常见的使用方案是我们在内网DNS上做解析或者公网DNS解析成内网地址。

阅读更多