使用 Nginx 转发请求到 Docker Socket

以下是将 Nginx 配置为反向代理,并将请求转发到 Docker Socket (/var/run/docker.sock) 的示例:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://unix:/var/run/docker.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在这个配置中:

  • proxy_pass 指令将请求转发到 http://unix:/var/run/docker.sock,也就是 Docker Daemon 监听的 Unix Socket 文件。
  • proxy_set_header 指令设置了以下 HTTP 标头:
    • Host: 将请求的 Host 标头设置为原始请求的 Host 值。
    • X-Real-IP: 将客户端真实的 IP 地址传递给 Docker 容器。
    • X-Forwarded-For: 用于识别代理服务器并记录客户端连接的真实 IP 地址,包含客户端 IP 和所有中间代理服务器的 IP。

请注意

  • 请将 example.com 替换为您自己的域名。
  • 确保 Nginx 进程有权限访问 Docker Socket 文件 ( /var/run/docker.sock ),例如将 Nginx 用户添加到 Docker 用户组。
  • 以上配置仅供参考,请根据您的实际需求进行修改。
Nginx 转发 Docker Socket 配置指南

原文地址: https://www.cveoy.top/t/topic/jpQz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录