Nginx 4层代理获取客户端真实IP
架构
4层代理配置
stream {
upstream backend {
server 10.4.7.30:80;
}
server {
listen 80;
proxy_pass backend;
proxy_connect_timeout 1s;
proxy_protocol on ; # 主要是把这个参数开上
}
}
后端nginx配置
注意这种方式客户端不能够直接访问后端服务器。
conf.d]# cat mywebsite.conf
server {
listen 81 proxy_protocol;
root /www;
需要修改下日志格式。
http {
log_format main '$proxy_protocol_addr $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_real_ip" "$http_x_forwarded_for"';
$proxy_protocol_addr # 这个变量获取到了客户端的真实IP地址。
客户端的真实IP地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具