You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Nginx map配置屏蔽含socket.io的URL日志?

用Nginx的map指令屏蔽含socket.io的请求日志

实现方式

借助Nginx的map指令搭配正则表达式,就能匹配所有带socket.io的URL(不管后面跟着什么随机哈希),让这类请求不写入access_log。

具体配置步骤

  1. 在http块里添加以下map规则:
map $request_uri $loggable {
    default 1;
    # 保留你已有的屏蔽规则:过滤/myapp/readiness路径
    ~^/myapp/readiness$ 0;
    # 新增规则:匹配所有包含socket.io的请求路径,大小写不敏感
    ~*socket.io 0;
}
  • 细节说明:~*是不区分大小写的正则匹配,要是你需要严格区分大小写,换成~就行;这个规则会命中所有URI里带socket.io的请求,比如/socket.io/EIO=4/t=abc123、/api/socket.io/xyz这类带随机哈希的路径都能被过滤掉。
  1. 在你的server块里,把access_log改成用这个变量控制:
server {
    # 其他server配置代码...
    access_log /var/log/nginx/access.log main if=$loggable;
}
  • 原理:当$loggable的值是0时,该请求就不会写入日志;值为1时正常记录。

额外提示

  • 要是你只想过滤以socket.io开头的路径,把正则改成~^/socket.io就行;
  • 配置完记得用nginx -t检查语法是否正确,没问题就用nginx -s reload让配置生效。

内容的提问来源于stack exchange,提问作者pmiranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:01:00