klzgrad/naiveproxy

在域名块中添加 log 指令后 forward_proxy 无法正常工作

kivvi3412 opened this issue · 1 comments

Caddy 版本: v2.7.5 h1:HoysvZkLcN2xJExEepaFHK92Qgs7xAiCFydN5x5Hs6Q=

问题描述:
我在 Caddy 配置文件中的全局块添加了 log 指令用于记录日志,forward_proxy 可以正常工作。但是当我尝试在域名块中添加 log 指令后,forward_proxy 功能就无法使用了。

复现步骤:

  1. 在全局块添加 log 指令,proxy 可正常工作:
    {
      order forward_proxy before file_server
      log {
        output file /var/log/caddy/runtime.log       
        level INFO
      }
    }
    
  2. 在reverse_proxy中添加 log 指令, proxy 可正常工作:
    reverse_proxy.example.com.co {
         log {
                 output file /var/log/caddy/reverse_proxy.log {
                         roll_size 100MB
                 }
         }
    
         reverse_proxy localhost:8081
    }
    
  3. 在域名块中添加 log 指令后,proxy 无法使用:
    :443, example.com.co, www.example.com.co {
      tls example@gmail.com
      log {
        output file /var/log/caddy/main_example.log
        roll_size 100MB
      }
      route {
        forward_proxy {
          ...
        }
        ...
      }
    }  
    

期望行为:
domain 块中添加 log 指令后,forward_proxy 依然可以正常工作,并将日志写入指定文件。

可以运行的Caddy 配置文件

{
  order forward_proxy before file_server

  log {
    output file /var/log/caddy/runtime.log
    level INFO
  }
}

:443, example.com.co, www.example.com.co {
  tls example@gmail.com
  route {
    forward_proxy {
      basic_auth example password
      hide_ip
      hide_via
      probe_resistance
      acl {
        allow 172.31.255.2
      }
    }

    file_server {
      root /var/www/html
    }
  }
}

reverse_proxy.example.com.co {
        log {
                output file /var/log/caddy/reverse_proxy.log {
                        roll_size 100MB
                }
        }

        reverse_proxy localhost:8081
   }

期望运行的Caddy 配置文件(无法进行代理):

{
  order forward_proxy before file_server
  log {
    output file /var/log/caddy/runtime.log
    level INFO    
  }
}

:443, example.com.co, www.example.com.co {
  tls example@gmail.com
  log {
    output file /var/log/caddy/main_example.log {
        roll_size 100MB
    }
  }
  route {
    forward_proxy {
      basic_auth example password
      hide_ip
      hide_via
      probe_resistance
      acl {
        allow 172.31.255.2
      }
    }
    file_server {
      root /var/www/html
    }
  }
}

reverse_proxy.example.com.co {
        log {
                output file /var/log/caddy/reverse_proxy.log {
                        roll_size 100MB
                }
        }

        reverse_proxy localhost:8081
   }

这个问题属于 https://github.com/caddyserver/forwardproxy/issues

我也没有已知的答案可以提供