文档章节

烂泥:haproxy与nginx、zabbix集成

烂泥行天下
 烂泥行天下
发布于 2015/11/07 17:38
字数 1191
阅读 52
收藏 6
点赞 0
评论 0

本文由ilanniweb提供友情赞助,首发于烂泥行天下

想要获得更多的文章,可以关注我的微信ilanniweb。

昨天介绍了haproxy的手机匹配规则,今天再来介绍下haproxy与nginx、zabbix的集成。接下来我会详细介绍haproxy与nginx目录浏览功能的集成,与zabbix集成我会把haproxy配置贴出来。

一、业务需求

由于业务需求,现在要把服务器上的部分目录暴露出去,让其它系统来调用暴露出去的文件,但是现在要求对外提供的还是80端口的http服务。

分析:

要达到上述的要求,首先我们要提供目录浏览的功能,这个我们可以使用apache或者nginx的目录浏览功能。在此,我们使用的是nginx的目录浏览功能(即nginx的目录索引功能)。

然后让haproxy反向代理到nginx,就可以实现业务的需求。

二、nginx配置

nginx的安装在此就不列出了,下面我们直接看nginx的配置文件。如下:

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

keepalive_timeout 65;

gzip on;

server {

listen 8088;

server_name 127.0.0.1;

charset utf-8;

access_log /var/log/nginx/log/host.access.log main;

location /testnginx/ {

root /data/;

autoindex on;

}

}

}

clip_image001

nginx现在我们定义的是监听8088这个端口,而且对外开放的是/data下的是testnginx这个目录。

注意:这个对外的目录名称一定要记住,这个名称我们在haproxy匹配规则中会使用到。

nginx配置完毕后,我们选择来查看下起目录浏览功能。如下:

http://http.ilanni.com:8088/testnginx/

clip_image002

通过上图,我们可以很明显的看出nginx的目录浏览已经完全没有问题。

三、haproxy配置

nginx配置完毕后,我们现在来配置haproxy。haproxy的配置就很简单了。

只需要根据客户端请求的url中匹配目录的名称即可。具体配置文件如下:

global

log 127.0.0.1 local0

log 127.0.0.1 local1 notice

maxconn 4096

uid 188

gid 188

daemon

tune.ssl.default-dh-param 2048

defaults

log global

mode http

option httplog

option dontlognull

option http-server-close

option forwardfor except 127.0.0.1

option redispatch

retries 3

option redispatch

maxconn 2000

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

listen admin_stats

bind 0.0.0.0:1080

mode http

option httplog

maxconn 10

stats refresh 30s

stats uri /stats

stats auth admin:admin

stats hide-version

frontend weblb

bind *:80

acl is_nginx url_beg /testnginx

acl is_http hdr_beg(host) http.ilanni.com

use_backend nginxserver if is_nginx is_http

use_backend httpserver if is_http

backend httpserver

balance source

server web1 127.0.0.1:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend nginxserver

balance source

server web1 127.0.0.1:8088 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

clip_image003

在haproxy配置文件中,我们定义了一个is_nginx规则,该规则匹配的是以testnginx目录开始的url,然后把该规则转发到后端的nginxserver服务器组,而nginxserver服务器组就是nginx服务器。

这样就完成了nginx与haproxy集成。

注意:在这有一点一定要注意啦,haproxy匹配目录的时候,后端的服务器组一定要存在该目录,否则会报404错误的。这个是我踩过很多坑后才知道的。

四、测试集成功能

nginx与haproxy集成配置完毕后,我们选择来访问http://http.ilanni.com/testnginx/测试其功能,如下:

clip_image004

通过上图,我们可以很明显的看出haproxy已经完美的和nginx目录浏览功能集成了。

五、haproxy与zabbix集成

前几章节我们讲解了haproxy与nginx进行集成的功能,在这一章节,我们再来介绍下haproxy与zabbix集成的功能。

zabbix在此我们是使用的yum方式进行安装的,安装完毕后apache监听的是8099端口。访问形式如下:

http://zabbix.ilanni.com:8099/zabbix/

clip_image005

现在要求直接使用80端口访问zabbix,haproxy具体配置如下:

global

log 127.0.0.1 local0

log 127.0.0.1 local1 notice

maxconn 4096

uid 188

gid 188

daemon

defaults

log global

mode http

option httplog

option dontlognull

option http-server-close

option forwardfor except 127.0.0.1

option redispatch

retries 3

option redispatch

maxconn 2000

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

listen admin_stats

bind 0.0.0.0:1080

mode http

option httplog

maxconn 10

stats refresh 30s

stats uri /stats

stats auth admin:admin

stats hide-version

frontend weblb

bind *:80

acl is_lianzhou hdr_beg(host) zabbix.ilanni.com

acl is_zabbix url_beg /zabbix

use_backend zabbix if is_zabbix

backend zabbix

balance source

server web1 192.168.1.22:8099 maxconn 1024 weight 1 check inter 2000 rise 2 fall 3

haproxy配置很简单,只需要定义一个is_zabbix的url匹配规则,然后分发到后端的服务器组即可。

还是需要注意的,匹配的目录在后端服务器是存在的。

配置完毕后,访问如下:

http://zabbix.ilanni.com/zabbix/

clip_image006

通过上图,我们可以很明显的看出haproxy与zabbix已经完美集成。

© 著作权归作者所有

共有 人打赏支持
烂泥行天下
粉丝 28
博文 77
码字总数 151711
作品 0
杭州
运维
使用 haproxy 搭建 web 群集

使用 haproxy 搭建 web 群集 案例概述: haproxy是目前比较流行的一种群集调度工具 。相比较而言 ,LVS 性能最好 ,但是搭建复杂 ,Nginx 的 upstream 模块支持群集功能 , 但是对群集节点的...

HHHNDYD
06/25
0
0
使用Haproxy及Nginx搭建Web群集

什么是HAProxy? HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理,可以运行于大部分主流的Linux操作系统上。 本次实验使用...

cchenyz
06/22
0
0
烂泥:haproxy学习之https配置

在前一段时间,我写了几篇有关学习haproxy的文章。今天我们再来介绍下haproxy的https配置,https协议的好处在此,我们就不就作介绍了。 我们只介绍如何配置https,以及https在实际生产环境中...

烂泥行天下
2015/11/05
0
2
Keepalived高可用+HAproxy实现Nginx+wordpress动静分离

背景介绍 随着时代的更新发展,我们对于网络访问的速度,容错性,冗余性,都要不断的提高,当然提高访问资源速度的方法有很多,其中动态资源与静态资源分类也是其中的一种,这里给出如何使用...

步荀仙
06/28
0
0
Haproxy+Nginx搭建Web群集

Haproxy 是一种群集调度工具 ,是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 Haproxy特别适用...

若此生无缘
06/23
0
0
haproxy nginx X-Forwarded-For的值

client(web 浏览器) ----> haproxy(acl backend)----> nginx (proxy_pass)----> java程序 地址如下: 1.1.1.1 2.2.2.2 3.3.3.3 默认正常的java程序看到的 X-Forwarded-For 为 1.1.1.1,2.2.2......

cuizhiliang
06/26
0
0
HAproxy均衡负载部署和配置文件详解

HAproxy均衡负载部署和配置文件详解 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的...

木雨山
2011/11/15
0
0
高性能缓存服务器 nuster v1.7.10.1 发布

高性能缓存服务器 nusterv1.7.10.1 已发布。本次更新主要升级到 HAProxy v1.7.10, 更改了配置文件关键字,删除了 share 关键字, 为升级到HAProxy v1.8 进行了代码重构。这应该是 1.7 版本的最...

nuster
04/24
0
0
怎样正确设置remote_addr和x_forwarded_for获取用户真实IP

做网站时经常会用到和这两个头信息来获取客户端的IP,然而当有反向代理或者CDN的情况下,这两个值就不够准确了,需要调整一些配置。 什么是remoteaddr remoteaddr代表客户端的IP,但它的值不...

星逝流
2015/11/11
0
0
haproxy,能够实现将来自用户的80端口的http请求转发至后端8000上的server服务

部署配置haproxy,能够实现将来自用户的80端口的http请求转发至后端8000上的server服务,写出其配置过程。 HAPorxy 是免费的、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡...

春天的金缕
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
0
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
12
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
2
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部