本文由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;

}

}

}

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

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

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

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

通过上图,我们可以很明显的看出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

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

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

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

四、测试集成功能

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

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

五、haproxy与zabbix集成

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

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

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

现在要求直接使用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/

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

烂泥:haproxy与nginx、zabbix集成的更多相关文章

  1. Zabbix 集成 OneAlert 实现全方位告警

    1. 前言 告警将重要信息发送给运维「或者其他相关人」,及时发现并且处理问题.在所有开源监控软件里面,Zabbix 的告警方式无疑是最棒的.告警的方式各式各样,从 Email 告警到飞信.139/18 ...

  2. CDN调度器HAProxy、Nginx、Varnish

    http://www.ttlsa.com/web/the-cdn-scheduler-nginx-haproxy-varnish/ CDN功能如下:1.将全网IP分为若干个IP段组,分组的依据通常是运 ...

  3. HAProxy、Nginx 配置 HTTP/2 完整指南

    基于最近对HTTP/2的争论和它的优势,是时候升级底层架构了.这篇文章将会介绍如何在安装和配置HAProxy和Ngnix(使用ssl终端).为了简化流程,我建议你准备好使用Docker镜像. 如果你想 ...

  4. Nginx zabbix 的监控

    Nginx zabbix 的监控 Nginx 配置 Nginx 必须包含:http_stub_status_module 模块 ./nginx -V |grep http_stub_status_mo ...

  5. lvs、haproxy、nginx 负载均衡的比较分析(转)

    原文:http://blog.csdn.net/gzh0222/article/details/8540604 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了 ...

  6. 多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建

    多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建 一.服务器详情 192.168.122.111 pm01.jq.com pm01 #(pup ...

  7. 如何选择Haproxy和Nginx

    对于做软负载,我们都知道主流的方案有LVS.Haproxy.Nginx!那么对于Haproxy和Nginx,我们如何选择呢?回答这个问题之前,我根据个人使用经验来讲下它们的特点! Haproxy特点 ...

  8. Zabbix集成Cloud Alert(睿象云)实现电话短信预警

    Zabbix 集成 睿象云智能告警平台 CA ( Cloud Alert ) 一 .简介与前期了解 Cloud Alert 通过应用,接入监控系统/平台的告警,集中管理您的告警,统一分派通知,统一分析 ...

  9. nginx lua集成kafka

    NGINX lua集成kafka 第一步:进入opresty目录 [root@node03 openresty]# cd /export/servers/openresty/ [root@node03 ...

随机推荐

  1. spring boot 配置启动后执行sql, 中文乱码

    spring.datasource.schema指定启动后执行的sql文件位置. 我发现中文乱码,原因是没有指定执行sql script encoding: spring: datasource: u ...

  2. HTML基本元素(一)

    HTML基本元素(一) 1.换行符 <br /> Ps:br 是换行(Break)的缩写,文本会在这个标签的地方换行. 实例: 第一行<br />第二行 2.段落 <p& ...

  3. 趣味python编程之经典俄罗斯方块

    国庆期间闲不住,用python把经典俄罗斯方块实现了一遍,找到了些儿时的乐趣.因此突发奇想,打算用python写点经典又确实有趣的小程序形成系列.正统编程之余也给自己找点儿乐趣,换个角度写程序. 原计 ...

  4. C# DataTable的詳細用法

    转载别人的转载,原作者都不知道了 在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一 ...

  5. linux系统下make & make install

    make,make install都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. make是用来编译的,在命令行输入make命令之后,系统会在当前目录下搜索Makefi ...

  6. Java异常处理机制 try-catch-finally 剖析

    Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

  7. 转载:《TypeScript 中文入门教程》 10、混入

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个 ...

  8. 《TypeScript 中文入门教程》 1、基础数据类型

    转载:https://github.com/MyErpSoft/TypeScript-Handbook/blob/master/pages/zh-CHS/Basic%20Types.md 概述 为了让 ...

  9. UDS(ISO14229-2006) 汉译(No.2参考标准)

    下列参考文件对本文件的系统是不可或缺的.注明日期的参考,仅关于对其引用的版本适用.未注明日期的,仅最新引用的文档(包括任何修改)适用. ISO 7498-1,信息技术——开放系统互联(OSI)——基本 ...

  10. php实现设计模式之 简单工厂模式

    作为对象的创建模式,用工厂方法代替new操作. 简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 工厂 ...