
chainstack/ingress-nginxingress-nginx 自定义镜像是基于官方 nginx-ingress-controller 构建的增强版镜像,内置了第三方 Nginx 模块,旨在扩展对 WebSocket 协议的监控与日志能力。
假设镜像托管于私有仓库或公共 Registry,拉取命令:
bashdocker pull [镜像仓库地址]/ingress-nginx:latest # 替换为实际镜像地址
内置的 ngx_http_websocket_stat_module 需通过 Nginx 配置指令启用,支持以下核心配置(具体参数以模块官方文档为准):
| 配置指令 | 功能说明 |
|---|---|
websocket_stat on | 启用 WebSocket 统计功能(默认关闭)。 |
websocket_log_message on | 启用 WebSocket 消息内容记录至访问日志(默认关闭,仅文本消息支持)。 |
websocket_stat_format json | 设置统计数据输出格式(如 json 或 default)。 |
通过 Ingress 资源的 nginx.ingress.kubernetes.io/configuration-snippet 注解注入模块配置,示例:
yamlapiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: websocket-app-ingress annotations: nginx.ingress.kubernetes.io/configuration-snippet: | # 启用 WebSocket 统计及消息日志 websocket_stat on; websocket_log_message on; # 自定义日志格式(包含 WebSocket 变量) log_format websocket_log '$remote_addr [$time_local] "$request" $status ' '"$websocket_message" $websocket_frame_size'; access_log /var/log/nginx/websocket-access.log websocket_log; spec: ingressClassName: nginx # 需与自定义 ingress-nginx 控制器的 class 匹配 rules: - host: ws.example.com http: paths: - path: / pathType: Prefix backend: service: name: websocket-service port: number: 80
bashdocker run -d \ --name custom-ingress-nginx \ --net=host \ -v /path/to/custom-nginx.conf:/etc/nginx/nginx.conf \ # 挂载包含模块配置的 Nginx 配置文件 -v /var/log/nginx:/var/log/nginx \ # 挂载日志目录 [镜像仓库地址]/ingress-nginx:latest
yamlversion: '3.8' services: ingress-nginx: image: [镜像仓库地址]/ingress-nginx:latest container_name: custom-ingress-nginx network_mode: host # 需使用 host 网络以监听主机端口(模拟集群入口) volumes: - ./nginx.conf:/etc/nginx/nginx.conf # 本地挂载自定义 Nginx 配置(含模块配置) - ./logs:/var/log/nginx # 日志持久化 restart: always environment: - NGINX_HOST=ws.example.com # 可选:设置默认主机名
v1.8.0 需基于官方 v1.8.0 构建),避免功能冲突。websocket_log_message 可能增加日志体积及 CPU 开销,生产环境建议按需开启。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务