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条)