#733·AriaNg

在 Nginx 后端工作时无法连接到 Aria2 RPC

作者: johnnysong-cc创建于 2023年10月30日更新于 2024年3月17日

运行环境 Aria2 RPC 服务器在 192.168.1.99:6800 上运行 AriaNg 客户端在 192.168.1.254:6880 上运行,它们一起运行正常。 但是,当我尝试将 AriaNg 置于 Nginx 反向代理后,并使用以下配置时:

nginx
stream {
  map $ssl_preread_server_name $backend_name {
    aria.mydomain.com aria;
  }
  upstream aria{
    server 127.0.0.1:26880;
  }
}

http {
  server {
    listen 26880 ssl;
    server_name aria.mydomain.com;
 
    ssl_certificate fullchain.cer;
    ssl_certificate_key aria.mydomain.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_timeout 5m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    # ssl_verify_client off;
    # ssl_handshake_timeout 30s;
 
    location / {
      proxy_pass http://192.168.1.254:6880/;
      proxy_set_header Host $host;
      proxy_set_header Origin 192.168.1.254;
      proxy_set_header Referer 192.168.1.254;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

症状 通过浏览器访问 "https://aria.mydomain.com",AriaNg 客户端仍可访问,但无法再通过 192.168.1.99:6800 连接到 RPC 服务器。

以下是超出我的能力范围的问题

  • 在 RPC 服务器设置中,"http" 和 "websocket" 不能使用,选项仅限于 "https" 和 "wss"。然而,我尝试使用由 LetsEncrypt 发布的 "aria.mydomain.com" 证书与 Aria2 RPC 服务器,但它不接受这些证书。
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-certificate=D:\aria2-1.36.0\fullchain.cer
rpc-private-key=D:\aria2-1.36.0\aria.mydomain.com.key
rpc-secure=true
  • Chrome 开发者工具的"网络"选项卡中有许多 jsonrpc 错误。我尝试使用 proxy_set_header 来更改 Origin 和 Referer 头,如配置中所示,但它们仍保持不变,仍为 "https://aria.mydomain.com"。

内容来源: mayswind/AriaNg