使用Haproxy搭建转发代理教程,只可转发http代理,可带密码

‌1、安装好docker环境

2、使用方式

(1)开启服务(其中/root/ha/ha.cfg 为配置文件)
     docker run -d --network=host --restart=always  --name ha -v /root/ha.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:2.3.2-alpine
(2)监控面板
     http://ip地址:30001/zhcx888999;norefresh
(3)卸载服务
     docker rm -f ha

‌备注:/root/ha.cfg配置文件生成命令如下 下面的代码全部执行  多端口转发指定IP

cat > /root/ha.cfg <<EOF
global
    log 127.0.0.1 local0 info  # 日志存储到127.0.0.1,以local0输入info级别
    maxconn 16000 # 最大连接数,要考虑到ulimit -n的大小限制
    daemon
    nbproc 4 # 进程数
    cpu-map 1 0  # 程绑定到特定的CPU上,这个好处是防止多进程对CPU的抢占
    stats bind-process 1

defaults
    log global
    mode http # 使用tcp4层代理模式
    option tcplog
    option dontlognull
    retries 3
    # 在使用基于cookie定向时,一旦后端某一server宕机时,会将会话重新定向至某一上游服务器,必须使用的选项
    option redispatch
    maxconn 16000
    timeout connect 5s
    timeout client 60s #客户端空闲超时时间
    timeout server 15s #服务端超时时间
    
    
#下面的是有密码的代理,需要把密码转换下才可以

#listen  NY-3600
#    bind 0.0.0.0:3600
#    server 3600  http://BnSv6x:3rR1Yn@hub-us-1.litport.net:1337

#下面的是无密码的代理,操作比较简单;

listen  ZF-3003
    bind 0.0.0.0:3003
    server 3003  196.242.89.3:10003

listen  ZF-3004
    bind 0.0.0.0:3004
    server 3004  196.242.89.3:10004

listen  ZF-3005
    bind 0.0.0.0:3005
    server 3005  196.242.89.3:10005

#配置haproxy web监控,查看统计信息
listen stats
    bind-process 1
    bind 0.0.0.0:20000 #这里得配置内网IP,然后用外网IP访问即可
    mode http
    option httplog
    stats enable
    stats uri /zhcx888999       # 设置统计页面的uri为/
    stats refresh 3s
EOF

‌一个端口 对应多个后端IP的配置文件写法

cat > /root/ha.cfg <<EOF
global
    log 127.0.0.1 local0 info  # 日志存储到127.0.0.1,以local0输入info级别
    maxconn 16000 # 最大连接数,要考虑到ulimit -n的大小限制
    daemon
    nbproc 4 # 进程数
    cpu-map 1 0  # 程绑定到特定的CPU上,这个好处是防止多进程对CPU的抢占
    stats bind-process 1

defaults
    log global
    mode http # 使用tcp4层代理模式
    option tcplog
    option dontlognull
    retries 3
    # 在使用基于cookie定向时,一旦后端某一server宕机时,会将会话重新定向至某一上游服务器,必须使用的选项
    option redispatch
    maxconn 16000
    timeout connect 5s
    timeout client 60s #客户端空闲超时时间
    timeout server 15s #服务端超时时间
    
    
#下面的是有密码的代理,需要把密码转换下才可以

#listen  NY-3600
#    bind 0.0.0.0:3600
#    server 3600  http://BnSv6x:3rR1Yn@hub-us-1.litport.net:1337

#下面的是无密码的代理,操作比较简单;

listen  ZF-3001
    bind 0.0.0.0:3001
	server 1001  154.40.48.62:3801
	server 1002  154.40.48.62:3901
	server 1003  154.40.48.62:3902
#listen  ZF-3004
#    bind 0.0.0.0:3004
#    server 3004  196.242.89.3:10004

#listen  ZF-3005
#    bind 0.0.0.0:3005
#    server 3005  196.242.89.3:10005

#配置haproxy web监控,查看统计信息
listen stats
    bind-process 1
    bind 0.0.0.0:20000 #这里得配置内网IP,然后用外网IP访问即可
    mode http
    option httplog
    stats enable
    stats uri /zhcx888999       # 设置统计页面的uri为/
    stats refresh 3s
EOF

‌把有密码的代理 通过2次转发,实现无密码转发

cat > /root/ha.cfg <<EOF
global
    log 127.0.0.1 local0 info  # 日志存储到127.0.0.1,以local0输入info级别
    maxconn 16000 # 最大连接数,要考虑到ulimit -n的大小限制
    daemon
    nbproc 4 # 进程数
    cpu-map 1 0  # 程绑定到特定的CPU上,这个好处是防止多进程对CPU的抢占
    stats bind-process 1

defaults
    log global
    mode http # 使用tcp4层代理模式
    option tcplog
    option dontlognull
    retries 3
    # 在使用基于cookie定向时,一旦后端某一server宕机时,会将会话重新定向至某一上游服务器,必须使用的选项
    option redispatch
    maxconn 16000
    timeout connect 5s
    timeout client 60s #客户端空闲超时时间
    timeout server 15s #服务端超时时间
    
    
#下面的是有密码的代理,需要把密码Base64转换下才可以

listen  NY-3600
    bind 127.0.0.1:3600
    http-request add-header Proxy-Authorization "Basic VklPc1U0OkFLM2FjQg=="
    server ZF-0  hub-us-8.litport.net:31337

listen  NY-3601
    bind 127.0.0.1:3601
    http-request add-header Proxy-Authorization "Basic OFdMSzJwOjF3SG1hVQ=="
    server ZF-1  hub-us-8.litport.net:31337

listen  NY-3602
    bind 127.0.0.1:3602
    http-request add-header Proxy-Authorization "Basic NXVON1pEOmRtcGVlUg=="
    server ZF-2  hub-us-8.litport.net:31337


#下面的是无密码的代理,操作比较简单;
listen  ZF-3001
    bind 0.0.0.0:3001
    server 001 127.0.0.1:3600
    server 002 127.0.0.1:3601
    server 003 127.0.0.1:3602

#listen  ZF-3004
#    bind 0.0.0.0:3004
#    server 3004  196.242.89.3:10004

#listen  ZF-3005
#    bind 0.0.0.0:3005
#    server 3005  196.242.89.3:10005

#配置haproxy web监控,查看统计信息
listen stats
    bind-process 1
    bind 0.0.0.0:20000 #这里得配置内网IP,然后用外网IP访问即可
    mode http
    option httplog
    stats enable
    stats uri /zhcx888999       # 设置统计页面的uri为/
    stats refresh 3s
EOF

‌把Haproxy转发出来的代理加上账号密码才可以访问,防止被盗用

global
    log 127.0.0.1 local0 info  # 日志存储到127.0.0.1,以local0输入info级别
    maxconn 16000 # 最大连接数,要考虑到ulimit -n的大小限制
    daemon
    nbproc 4 # 进程数
    cpu-map 1 0  # 程绑定到特定的CPU上,这个好处是防止多进程对CPU的抢占
    stats bind-process 1

defaults
    log global
    mode http # 使用tcp4层代理模式
    option tcplog
    option dontlognull
    retries 3
    # 在使用基于cookie定向时,一旦后端某一server宕机时,会将会话重新定向至某一上游服务器,必须使用的选项
    option redispatch
    maxconn 16000
    timeout connect 5s
    timeout client 60s #客户端空闲超时时间
    timeout server 15s #服务端超时时间

#下面的内容设置 代理的账号和密码
userlist L1
    group G1 users gupeili,saihe		
    user gupeili insecure-password panda518
    user saihe insecure-password panda519


listen  ZF-3801
    #下面的内容给端口设置好账号和密码 
    option http-use-proxy-header
    acl auth_ok http_auth_group(L1) G1
    http-request auth realm BasicAuth unless auth_ok
    http-request del-header Proxy-Authorization  #取消向后端的代理传输账号密码;

    bind 0.0.0.0:3801
    server 3801  dc.smartproxy.com:10001

listen  ZF-3802
    #basic authentication认证
    option http-use-proxy-header
    acl auth_ok http_auth_group(L1) G1
    http-request auth realm BasicAuth unless auth_ok
    http-request del-header Proxy-Authorization

    bind 0.0.0.0:3802
    server 3802  dc.smartproxy.com:10002


#配置haproxy web监控,查看统计信息
listen stats
    bind-process 1
    bind 0.0.0.0:20000 #这里得配置内网IP,然后用外网IP访问即可
    mode http
    option httplog
    stats enable
    stats uri /zhcx888999       # 设置统计页面的uri为/
    stats refresh 10s

下载地址

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你:下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

(0)

发表回复

评论问题之前, 点击我,能帮你解决大部分问题

评论列表(0条)

请用支付宝扫一扫完成支付