跳转到内容

放到 HTTPS 反向代理后面

浏览器只在 HTTPS 地址或 localhost 下开放麦克风和推送通知。用 http://192.0.2.10:7575 这类局域网地址打开 nSIM 时,管理功能都能用,但网页通话和浏览器推送用不了。按这一页给 nSIM 配一个 HTTPS 入口。

  • 一个指向反向代理主机的域名,以及它的 TLS 证书。下文用 nsim.example.com 代替。
  • 反向代理主机上装好了 nginx,并且能访问 nSIM 的 7575 端口。
  1. 可选:nginx 与 nSIM 在同一台主机上时,让 nSIM 只在本机监听。这样别人无法绕过代理直接访问。在配置文件里把端口改成:

    server:
    port: "127.0.0.1:7575"

    然后重启 nSIM。

  2. 在 nginx 里新增一个站点:

    server {
    listen 443 ssl;
    server_name nsim.example.com;
    # ssl_certificate 与 ssl_certificate_key 按你的证书填写
    location / {
    proxy_pass http://127.0.0.1:7575;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_buffering off; # 实时推送用长连接,不能缓冲
    proxy_read_timeout 1h; # 长连接不能被代理超时掐断
    client_max_body_size 512m; # 上传备份包恢复时需要
    }
    }

    nSIM 只能挂在域名的根路径上,不支持 /nsim/ 这样的子路径。

  3. 检查配置并重新加载:

    终端窗口
    nginx -t && systemctl reload nginx
  1. 在浏览器里打开 https://nsim.example.com,登录。
  2. 打开「诊断」页查看日志。新日志会持续出现,不需要手动刷新页面。

状态一直不动、来电不弹出时,多半是代理缓冲了长连接,检查 proxy_buffering off 那一行。

  • nSIM 不读取代理传来的 X-Forwarded-For。审计日志里记录的来源是代理的地址;按来源地址的登录限制,也会把所有访问者算作同一个来源。
  • 网页通话的声音不经过反向代理。浏览器直接连到 nSIM 主机的地址,nSIM 也不使用 STUN 或 TURN 中继。所以只有浏览器能直接连到这台主机时,网页通话才有声音。例如在同一局域网,或通过 VPN 连接。主机防火墙要放行这类 UDP 连接。