komari探针
服务器配置与部署

komari探针

JACIN··9 分钟阅读

目录#

[[toc]]

服务端安装#

docker-compose

python
version: "3.8"

services:
  komari:
    image: ghcr.io/komari-monitor/komari:latest
    container_name: komari
    ports:
      - "25774:25774"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

查看默认账号和密码

python
docker logs komari

你也可以通过环境变量 ADMIN_USERNAMEADMIN_PASSWORD 自定义初始用户名和密码

登录进去就进行修改。

nginx 反向代理#

python
server {
    listen 443 ssl http2;;
    server_name your-domain.jacin.me;
    ssl_certificate     /root/fast-proxy/ssl/origin.crt;
    ssl_certificate_key /root/fast-proxy/ssl/origin.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    location / {
        proxy_pass http://127.0.0.1:25774;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

        # 禁用代理缓冲
        proxy_buffering off;

        # 允许大文件上传(50M)
        client_max_body_size 50M;
    }
}

[websocket 必须只能使用 proxy_http_version 1.1; 并且开启Upgrade]

在 Nginx 里代理 WebSocket 时,最关键的是把“普通的 HTTP 代理”升级(Upgrade)为“长连接”的 WebSocket 协议。

  • 为什么要用 HTTP/1.1?

    WebSocket 握手本质上是一个 HTTP 请求,它依赖于 Upgrade 头和持久连接(Connection: keep-alive 或 Upgrade)。而 HTTP/1.0 默认不支持持久连接,也不支持 Upgrade 机制,Nginx 如果不显式指定,默认走的是 HTTP/1.0,到上游时就不会保留 Connection 头,导致升级请求被忽略、握手失败。

  • 效果:让 Nginx 向后端发起请求时使用 HTTP/1.1,从而能够携带并处理 Upgrade 相关的头部。

类似于

python
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: ...
Sec-WebSocket-Version: 13

• 除了 Upgrade,HTTP 还需要一个 Connection: Upgrade 头,明确告诉对方:本次连接不仅要保持(keep-alive),而且要升级协议

因为 WebSocket 协议是基于 HTTP/1.1 的升级握手(Upgrade),而 HTTP/2 规范并不支持类似的 Connection: Upgrade 机制——它取消了“明文头部”的概念,也不允许客户↔服务器在同一个连接上动态切换协议。具体来说:

  1. HTTP/2 不支持 Upgrade
    • HTTP/1.1 握手允许运行时插入 Upgrade: websocket + Connection: Upgrade 头,告诉服务器“把这个连接从 HTTP 切到 WS”。
    • HTTP/2 完全废弃了这套头部字段和 Upgrade 流程,所有的流控制、帧结构都不再兼容 HTTP/1.1 的升级模式。

配置和使用#

这里的配置还是比较简单的,比哪吒简单易懂很多。

这里可以设置延迟监测

我这里设置了 15 天,而系统信息是存了 7 天。

线路还是很重要的,所以存了 15 天。

另外也可以设置 email 通知,我这里是使用了 apple 自定义邮箱,相关说明可见我的工具使用 这一章节部分。

特点要注意,需要打开才可以测试,我之前没打开没测试成功。

评论

还没有评论,来发第一个吧