
interaction/nginx-proxy-redirectnginx-proxy-redirect 是一个基于Nginx的反向代理与重定向服务器,旨在通过简化的 config.yml 文件快速配置常见需求。它设计为可配合 Traefik 使用,以实现Let's Encrypt自动化SSL证书管理。该镜像通过模板化的 server 块和 location 块,降低了Nginx配置的复杂度,适合快速实现反向代理或重定向功能。
config.yml 文件定义 server 块和 location 块,无需直接编写Nginx配置文件proxy: true)和重定向(proxy: false)两种模式permanent: true)或302临时重定向(permanent: false)client_max_body_size,按location块自定义代理Host头核心配置文件,定义一个或多个 server 块,每个 server 包含多个 location 块。
| 层级 | 字段 | 说明 | 默认值 |
|---|---|---|---|
| server | server_name | Nginx server_name 指令,定义匹配的域名 | - |
| server | client_max_body_size | Nginx client_max_body_size 指令,限制请求体大小 | 继承全局配置 |
| server.locations | rule | Nginx location 指令,定义匹配的路径 | / |
| server.locations | url | 目标地址,用于 proxy_pass(代理)或 return(重定向)指令 | - |
| server.locations | permanent | 是否301永久重定向(true)或302临时重定向(false) | false |
| server.locations | proxy | 是否启用反向代理(true)或重定向(false) | false |
| server.locations | proxy_hostname | 代理请求时设置的Host头 | $http_host |
yaml- server_name: example.com [***] client_max_body_size: 20m locations: - rule: /old-path url: [***] permanent: true # 301重定向 - rule: ~^/api/(.*)$ # 正则表达式匹配,捕获组 url: [***] # 使用捕获组重写路径 proxy: true # 反向代理 proxy_hostname: backend-service # 自定义Host头
通过环境变量调整Nginx全局参数:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
CLIENT_MAX_BODY_SIZE | http 块中的默认请求体大小限制,可被 server 块中的配置覆盖 | 10m |
WORKER_PROCESSES | Nginx工作进程数,设为 auto 时按CPU核心数自动调整 | 1 |
镜像内置以下无需手动配置的优化项:
Connection: upgrade 和 Upgrade 头处理)X-Forwarded-ProtoX-Forwarded-For如需扩展Nginx配置,可在挂载目录中创建 conf.d 文件夹,添加 .conf 文件。这些文件会被自动包含到Nginx的 http 块末尾,用于定义自定义 server 块或补充配置。
路径:/opt/nginx-proxy-redirect/data/conf.d/*.conf
bashdocker run -d \ -p 80:80 \ -v $(pwd)/data:/opt/nginx-proxy-redirect/data \ # 挂载配置目录 -e WORKER_PROCESSES=auto \ -e CLIENT_MAX_BODY_SIZE=50m \ nginx-proxy-redirect
yamlversion: '3' services: nginx-proxy-redirect: image: nginx-proxy-redirect ports: - "80:80" volumes: - ./data:/opt/nginx-proxy-redirect/data # 本地data目录包含config.yml和conf.d environment: - WORKER_PROCESSES=auto - CLIENT_MAX_BODY_SIZE=50m restart: unless-stopped
-v 参数)提供自定义 config.yml,避免配置丢失config.yml)和 conf.d 子目录(自定义 .conf 文件)Nginx相关指令官方文档:
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务