Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

实际场景

用户访问--->阿里云CDN--->机房公网防火墙--->haproxy-→ingress

需要在ingress日志中拿到用户真实IP

ingress配置文件

Code Block
apiVersion: v1
data:
  add-headers: ingress-nginx/custom-headers-default
  allow-backend-server-header: 'true'
  compute-full-forwarded-for: 'true'
  enable-underscores-in-headers: 'true'
  error-log-level: notice
  forwarded-for-header: X-Forwarded-For
  generate-request-id: 'true'
  hsts: 'false'
  ignore-invalid-headers: 'true'
  log-format-upstream: >-
    $http_x_forwarded_for - [$remote_addr] - $remote_user [$time_local]
    "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
    $request_length $request_time [$proxy_upstream_name] $upstream_addr
    $upstream_response_length $upstream_response_time $upstream_status $req_id
    $host [$proxy_alternative_upstream_name]
  max-worker-connections: '65535'
  proxy-body-size: 4096M
  proxy-connect-timeout: '3600'
  proxy-read-timeout: '3600'
  proxy-send-timeout: '3600'
  ssl-ciphers: >-
    ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
  ssl-protocols: TLSv1.2 TLSv1.1 TLSv1
  upstream-keepalive-connections: '40000'
  use-forwarded-headers: 'true'
  use-http2: 'false'
  use-proxy-protocol: 'true'
  worker-processes: '2'
  worker-shutdown-timeout: 2hs
kind: ConfigMap
metadata:
  name: ingress-nginx-controller-default
  namespace: ingress-nginx

...