HAProxy负载均衡安装手册
此手册是实用HAProxy做为负载均衡,安装在其中一台应用服务器上。
我们假设负载均衡(应用服务器1)地址为192.168.1.1
应用服务器2地址为192.168.1.2
我们部署HAProxy在应用服务器1上,以下所有操作都在服务器1上
1. 安装HAProxy
# setup
$ wget http://www.muug.mb.ca/pub/centos/6.7/os/x86_64/Packages/setup-2.8.14-20.el6_4.1.noarch.rpm
$ rpm -Uhv setup-2.8.14-20.el6_4.1.noarch.rpm
# 下载HAProxy
$ wget http://mirror.esecuredata.com/centos/6.7/updates/x86_64/Packages/haproxy-1.5.4-2.el6_7.1.x86_64.rpm
$ rpm -ihv haproxy-1.5.4-2.el6_7.1.x86_64.rpm
2. 配置 HA Proxy
首先我们需要修改Nginx的地址从80改为81:
# default.conf
# Upstream for Unicorn's socket
upstream hy-app {
# 连接服务器和Socket
server unix:/tmp/unicorn.huanyu.sock;
}
# 服务器设置
server {
# Serve localhost:81
listen 81;
server_name localhost;
# 程序根目录
root /var/www/huanyu/public;
# 默认载入文件
try_files $uri/index.html $uri @hy-app;
# 连接Upstream和服务器
location @hy-app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://hy-app;
}
# 其他默认设置
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
重启nginx
service nginx restart
修改HAProxy配置文档
# 打开文件:
$ vim /etc/haproxy/haproxy.cfg
# 在defaults下,修改为:
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 30s
timeout queue 86400
timeout connect 86400
timeout client 86400
timeout server 86400
timeout http-keep-alive 30s
timeout check 30s
maxconn 50000
# 在这个文档最后设置负载均衡
# 默认可能看起来是: frontend main *:5000, backend static, backend app
# 修改为:
frontend main *:5000
bind 192.168.1.1:80 # 这个是负载均衡服务器地址
reqadd X-Forwarded-Proto:\ http
default_backend app
backend app 192.168.1.1:80 # 负载均衡IP地址
mode http
balance roundrobin
server 192.168.1.1 192.168.1.1:81 check #这里是应用服务器1地址
server 192.168.1.2 192.168.1.2:80 check
# 这里可以输入更多的服务器地址
设置HAProxy 自动启动
# 在以上修改完成后,重启HAProxy
$ service haproxy restart
# 设置自动启动
$ chkconfig haproxy on
打开HAProxy 的防火墙 (假设端口80已经打开)
# 修改/etc/sysconfig/iptables
# 加入一下做为第一个条件
-A INPUT -m state --state NEW -p tcp --dport 514 -j ACCEPT
到此为止,负载均衡就成功部署在应用服务器1上了
测试
- 访问192.168.1.1可以成功打开网页
- 关闭防火墙后,访问192.168.1.1:81可以访问网页(说明应用服务器实际运行在端口81)
- 打开防火墙后,访问192.168.1.1:81不可以访问
相关文章
- supervisor使用教程
一、安装 1:easy_install 安装: easy_install supervisor 2:pip 安装: pip install supervisor 3:Debian / Ubuntu
- gitlab的ssh key不生效的问题
在用 gitlab 的管理代码时发现一个问题:如果用 http 协议,每次 push 的时候都需要输入用户名和密码,如果 用 ssh 协议,先要生成公钥: ssh-keygen -t rsa -C
- UOJ安装指南
这是一个UOJ的docker版本。在安装之前,请确认Docker已经安装在您的操作系统中。这个docker的映像是64位的版本,在32位的系统上安装可能会出现错误。 安装 请先下载 JDK7u76
- untu14.04下创建用户并赋予执行sudo命令的权限
untu14.04下创建用户并赋予执行sudo命令的权限 创建用户:adduser +用户名(该命令在home下生成用户目录并创建用户) 1. 切换到root用户下 2. /etc/sud
- 如何查看当前apache的工作模式prefork worker还是event模式?
查看apache工作模式 $ apachectl -V (注:apachectl可理解为apache control,其实是一段bash脚本) Server version: Apache/2.4.
随机推荐
- supervisor使用教程
一、安装 1:easy_install 安装: easy_install supervisor 2:pip 安装: pip install supervisor 3:Debian / Ubuntu
- gitlab的ssh key不生效的问题
在用 gitlab 的管理代码时发现一个问题:如果用 http 协议,每次 push 的时候都需要输入用户名和密码,如果 用 ssh 协议,先要生成公钥: ssh-keygen -t rsa -C
- UOJ安装指南
这是一个UOJ的docker版本。在安装之前,请确认Docker已经安装在您的操作系统中。这个docker的映像是64位的版本,在32位的系统上安装可能会出现错误。 安装 请先下载 JDK7u76
- untu14.04下创建用户并赋予执行sudo命令的权限
untu14.04下创建用户并赋予执行sudo命令的权限 创建用户:adduser +用户名(该命令在home下生成用户目录并创建用户) 1. 切换到root用户下 2. /etc/sud
- 如何查看当前apache的工作模式prefork worker还是event模式?
查看apache工作模式 $ apachectl -V (注:apachectl可理解为apache control,其实是一段bash脚本) Server version: Apache/2.4.