我是靠谱客的博主 土豪皮卡丘,最近开发中收集的这篇文章主要介绍haproxy + nginx 实现四和七层IP透传环境目标七层透传,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

环境

服务器ip用途
192.168.233.17haproxy服务器
192.168.233.196后端web服务主机
192.168.233.195客户机

目标

        后端web服务可以记录客户端的真实IP地址

四层透传

      haproxy配置

listen test
    bind 0.0.0.0:80
    log global
    mode tcp #因为是4层,所以填的tcp
    server web1 192.168.233.196:80 send-proxy weight 1 check #加上send-proxy

      nginx配置

        在访问日志中通过访问变量$proxy_protocol_addr记录透传过来的客户端IP

http    {   

    log_format main '$remote_addr - $remote_user [$time_local] "$request" "$proxy_protocol_addr"';

        access_log /var/log/nginx/access.log main;


    server {
        listen 80 proxy_protocol; #启用此项,将无法直接访问此网站,只能通过四层代理访问

        ...

    }

....
}

      测试访问结果

root@ubuntu-195:~# curl 192.168.233.17
web server

#查看web服务器nginx日志
root@ubuntu-196:/etc/nginx# tail -f /var/log/nginx/access.log 
192.168.233.17 - - [19/Sep/2021:22:06:17 +0800] "GET / HTTP/1.1" "192.168.233.195"

        四层IP透传成功。

七层透传

      haproxy配置

defaults
    option http-keep-alive
    option forwardfor    #默认值
    mode http
    ....


listen test
    bind 0.0.0.0:80
    log global
    mode http
    server web1 192.168.233.196:80 send-proxy weight 1 check
    ....

....

        nginx配置

#$proxy_add_x_forwarded_for:  包括客户端IP和中间经过的所有代理的IP
#$http_x_forwarded_For:  只有客户端IP

http    {   

    log_format main '$remote_addr - $remote_user [$time_local] "$request" "$proxy_protocol_addr" "$proxy_add_x_forwarded_for" "$http_x_forwarded_For"';

        access_log /var/log/nginx/access.log main;

....
}

        测试访问结果

root@ubuntu-195:~# curl 192.168.233.17
web server


#查看web服务器nginx日志
root@ubuntu-196:/etc/nginx# tail -f /var/log/nginx/access.log 
192.168.233.17 - - [19/Sep/2021:23:10:27 +0800] "GET / HTTP/1.1" "" "192.168.233.195, 192.168.233.17" "192.168.233.195"

        七层IP透传成功。

最后

以上就是土豪皮卡丘为你收集整理的haproxy + nginx 实现四和七层IP透传环境目标七层透传的全部内容,希望文章能够帮你解决haproxy + nginx 实现四和七层IP透传环境目标七层透传所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部