2022-07-29 Alfred → Raycast / NGINX SO_REUSEPORT / eBPF(extended Berkeley Packet Filter)
Alfred → Raycast
Alfred 5 が July, 2022 にリリースされているが、これを機に Raycast に乗り換えている。
今のところ特に問題なく使えているので、今後は Raycast で統一していこうと思っている。
TypeScript で拡張が書けるのは嬉しい。
NGINX SO_REUSEPORT
NGINXの SO_REUSEPORT
について。
ワーカープロセスが開いたソケットでSO_REUSEPORT機能を使うと、異なるワーカープロセス間であっても443などの同一のポートに対して、bind() & listen()を発行して待ち受けができるようになります。通常は一つのポートを待ち受けるできるプロセスは一つだけで、他のワーカープロセスが待ち受けようとするとエラーEADDRINUSE が返されます。
ref. NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理
このSO_REUSEPORT
の機能を試したい場合は docker 使って下記の記事のように試してみるとよさそう。
nginx の reuseport (SO_REUSEPORT) を試してみる。 docker-compose で - Qiita
nginx_1:
image: nginx
net: host
volumes:
- ./conf.d:/etc/nginx/conf.d
ports:
- "80:80"
nginx_2:
image: nginx
net: host
volumes:
- ./conf.d:/etc/nginx/conf.d
ports:
- "80:80"
nginx_3:
image: nginx
net: host
volumes:
- ./conf.d:/etc/nginx/conf.d
ports:
- "80:80"
# conf.d/default.conf
server {
server_name localhost;
listen 80 reuseport;
location / {
return 200 'OK';
}
}
eBPF(extended Berkeley Packet Filter)
上引用記事にて紹介されていいる eBPFについて調べた。
eBPF(extended Berkeley Packet Filter)はLinuxカーネルが提供する機能の一つで、カーネル空間で動作する仮想マシン(Virtual Machine)で、主にネットワークパケットやシステム動作のトレーシング用途で提供されます。それ以外にも、システムのセキュリティ対策、そして近年では各種クラウドアプリケーションの高速化などでも利用されており、近年クラウド界隈を中心にホットな技術です。
ref. eBPF - 入門概要 編