Haproxy内网连接阿里云存储OSS后提供下载
globallog 127.0.0.1 local0
maxconn 4096 #最大连接数
chroot /usr/local/haproxy
uid 99 #所属运行的用户UID
gid 99 #所属运行用用户组
daemon #以后台形式运行HAProxy
nbproc 1 #启动1个实例,可以启多个来提高效率
defaults
log global
mode http
option httpclose #每次请求完毕后主动关闭http通道
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option forwardfor #
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option dontlognull #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包
retries 2
maxconn 2000
balance source #如果想让HAProxy按照客户端的IP地址进行负载均衡策略,即同一IP地址的所有请求都发送到同一服务器时,需要配置此选项
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen web_proxy 0.0.0.0:8899
mode http
server oss oss-cn-qingdao-internal.aliyuncs.com:80 cookie app1inst1 check inter 2000 rise 2 fall 5
listen admin_stats
bind *:1080 #监听端口
mode http #http的7层模式
option httplog #采用http日志格式
log 127.0.0.1 local0 err
maxconn 10
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm XingCloud\ Haproxy#统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
stats hide-version #隐藏统计页面上HAProxy的版本信息
未开启下载ECS主机流量:
外网流出:25.10 kBit/s
内网流入:99.50 kBit/s
开启下载ECS主机流量:
外网流出:2.15 MBit/s
内网流入:2.48 MBit/s
在下载文件时ECS主机用Haproxy内网代理到OSS存储拿到文件,然后再用外网将拿到的文件返回给客户端,由于是内网连接到OSS存储所以OSS存储不产生费用,流量走的是ECS主机的带宽。。 请教一下楼主高手:
我目前正需要这样一个功能,但是我不懂服务器配置,纯小白一个。
我自己个按照网上搜索到的教程,给阿里云 ECS 服务器安装了 web 面板,是 VestaCP;然后我在上面搭建了网站;然后我也购买了同一个城市(杭州)节点的 OSS,并且上传了一些 zip 文件到 OSS 上面。
现在我想要实现的就是你描述的这种功能:当访客从我的网站上点击下载按钮,来下载那些实际上存放在 OSS 的 zip 文件时,不会产生 OSS 上面的流量。
请问:我该如何安装及配置你所说的这个 Haproxy 呢?你上面的帖子太简略了,新手根本看不懂。能否给一个比较详细的设置过程?
谢谢! OK,更新一下,我刚刚通过 yum install haproxy 已经在我的阿里云服务器(CentOS 7)上面安装了 haproxy 。
但是看不懂楼主的设置过程,所以不敢贸然操作下一步。等待您指点。谢谢! 我顺便查看了一下我的 haproxy 当前的默认设置文件,内容是:
# cat haproxy.cfg
#---------------------------------------------------------------------
# Example configuration for a possible web application.See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events.This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontendmain *:5000
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static
default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
balance roundrobin
server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
balance roundrobin
serverapp1 127.0.0.1:5001 check
serverapp2 127.0.0.1:5002 check
serverapp3 127.0.0.1:5003 check
serverapp4 127.0.0.1:5004 check
#
页:
[1]