Centos安裝配置HAProxy+Nginx環境


在測試環境安裝了一下Nginx(作爲http服務器)和HAProxy(反向代理),並配置HAProxy的日誌輸出到/var/log/haproxy.log,筆記一下。

需要說明的是,這裏僅涉及基本的安裝、配置方法,並不涉及生產環境中的具體用法。


一、安裝Nginx

1、準備環境

yum install -y gcc      #一般都有
yum install -y gcc-c++  #非必須
yum install -y pcre pcre-devel  #正則匹配
yum install -y zlib zlib-devel  #gzip壓縮
yum install -y openssl openssl-devel  #https使用

2、下載(以nginx-1.9.15爲例)

cd soft/
wget "http://nginx.org/download/nginx-1.9.15.tar.gz"

3、安裝

默認安裝在/usr/local/nginx/下

tar -xzvf nginx-1.9.15.tar.gz
cd nginx-1.9.15/
./configure
make
make install

4、配置

#配置文件路徑:
/usr/local/nginx/conf/nginx.conf

5、啓停

#幫助:
/usr/local/nginx/sbin/nginx -h
#啓動:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#停止:
/usr/local/nginx/sbin/nginx -s stop
#重載:
/usr/local/nginx/sbin/nginx -s reload
#查看版本:
/usr/local/nginx/sbin/nginx -v

6、測試

安裝啓動後,發現瀏覽器無法訪問nginx,經排查,是由於防火牆限制,放行後正常:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -L


二、安裝HAProxy

1、安裝

yum install haproxy

2、配置

配置文件位置:

/etc/haproxy/haproxy.cfg

在最後幾行,將後端配置成本機的Nginx,如下:

# 實際應用中,會配置多個不同的後端ip,並且會有多個backend服務。
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 127.0.0.1:80 check
    server  app2 127.0.0.1:80 check
    server  app3 127.0.0.1:80 check
    server  app4 127.0.0.1:80 check

3、啓動

#幫助:
haproxy -h
#啓動:
haproxy -f /etc/haproxy/haproxy.cfg
#重啓:
haproxy -f /etc/haproxy/haproxy.cfg -sf `cat /var/run/haproxy.pid`
#版本:
haproxy -v

4、測試

設置防火牆(5000爲HAProxy端口):

/sbin/iptables -I INPUT -p tcp --dport 5000  -j ACCEPT

用瀏覽器訪問HAProxy(端口爲5000),可以看到最終訪問的是nginx服務器下的index.html。


三、配置HAProxy日誌輸出

1、配置HAProxy

配置文件位置:

/etc/haproxy/haproxy.cfg

可以保持默認的log項:

log         127.0.0.1 local2

可以根據需要增加日誌格式說明:

log-format  <指定格式>

如果改變配置,需要重啓生效:

haproxy -f /etc/haproxy/haproxy.cfg -sf `cat /var/run/haproxy.pid`

2、配置rsyslog

配置文件位置:

/etc/rsyslog.conf

去掉這四行的註釋:

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

爲local2添加日誌路徑:

# Save haproxy log to haproxy.log
local2.*    /var/log/haproxy.log

最後重啓rsyslog:

/etc/init.d/rsyslog restart

再次用瀏覽器測試訪問HAProxy,可以看到有日誌輸出到了/var/log/haproxy.log

並且從日誌中還可以看到,HAProxy是輪流訪問後端的app1~app4的,雖然它們都是同一個服務(ip:port)



《完》



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章