架构
LBS配置(TCP模式)
LBS 使用 nginx stream 模块实现, 需要在配置中开启
upstream loadserver {
server 30.25.23.197:80;
}
server {
listen 8000; # 需要监听的端口
proxy_protocol on;
proxy_pass loadserver;
access_log /var/log/nginx/tcp_access.log proxy;
error_log /var/log/nginx/tcp_error.log;
}
LBS不限于nginx, 也会有Haproxy 实现, 同样需要开启 proxy_protocol.
后端配置
ingress
ingress 开启 proxy_protocol, 需要在ingress configMap 中添加 use-proxy-protocol: "true":
apiVersion: v1
data:
real-ip-header: proxy_protocol
use-proxy-protocol: "true"
kind: ConfigMap
metadata:
annotations:
creationTimestamp: "2021-12-10T07:41:53Z"
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/version: 0.47.0
helm.sh/chart: ingress-nginx-3.33.0
nginx-proxy
如果没有 ingress , 需要在nginx listen参数上添加proxy_protocol.
upstream dns {
server 192.168.0.1:53535;
}
server {
listen 12345 proxy_protocol;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
real_ip_header proxy_protocol;
}
该博客探讨了如何在使用nginx作为四层代理时,通过启用stream模块和proxy_protocol来获取客户端的真实IP地址。内容涉及LBS配置,包括nginx和Haproxy的设置,以及ingress和nginx-proxy的后端配置调整。
4049

被折叠的 条评论
为什么被折叠?



