通常代理服务器只用于处理内部网络对Intenet的请求,客户端必须通过代理服务器把本来要发送到Web服务器上的请求通过代理服务器分发给Web服务器,Web服务器响应时再通过代理服务器把响应发给客户端;
 
下面是一个反向代码的物理网络图:
 
下面通过三台服务器来实现这个经典的反向代理结构:
  反向代理服务器:1台Tengine服务器
  Web服务器:2台Web服务,搭载Tomcat的应用服务器
 
Tomcat的应用服务器的搭建:
 
安装Java JDK
安装命令: 
rpm -ivh jdk-7u79-linux-x64.rpm
    
配置环境变量 :    
vi ~/.bash_profile
PATH=$PATH:$HOME/bin
JAVA_HOME=/usr/java/jdk1.7.0_79/
PATH=$PATH:$JAVA_HOME/bin
export PATH
保存完以后  java -version 查看是否成功
 
安装Tomecat
安装Tomcat,Tomcat是绿色版软件,所以下载后直接解压到相应的目录即可,下载地址:http://tomcat.apache.org/download-70.cgi  
#解压:
tar -zxvf apache-tomcat-7.0.61.tar.gz
mv apache-tomcat-7.0.61 /usr/local/tomcat
#将端口改为80
vim /usr/local/tomcat/conf/server.xml #启动Tomcat
sh /usr/local/tomcat/bin/startup.sh
 
关闭防火墙查看效果;
    
 
为了能够区分出两个Tomcat,我们将Tomcat的默认页面,改为Tomcat 1 : ip  和Tomcat 2 : ip 
    
    
#将Tomcat的默认端口8080改为80
vim /usr/local/tomcat/webapps/ROOT/index.jsp

   

  

Tengine的服务器的搭建:
 
 
 
配置Tengine的配置文件,将客户端请求的IP转发向两台Web应用服务器:

#upstream   localhost{
##weigth参数表示权值,权值越高被分配到的几率越大
#server 127.0.0.1:9001 weight=1 max_fails=2 fail_timeout=30s;
#server 127.0.0.1:9004 weight=1 max_fails=2 fail_timeout=30s;
#server 127.0.0.1:9007 weight=1 max_fails=2 fail_timeout=30s;
}
vim /etc/usr/local/tengine-2.1.0/conf/nginx.conf
#通过 upstream 进行请求转发
upstream backend{
server 192.168.163.13:80;
server 192.168.163.14:80;
}
server {
location / {
proxy_pass http://backend;
}
location /status{
check_status;
}
}

重启Nginx

然后我们用不同的浏览器,去反复请求 192.168.163.11 会发现,服务器会在两个Tomecat之间来回切换;

  
 

为添加tengine的状态监控

Tengine的状态监控分为两种:

    

文档:http://tengine.taobao.org/documentation_cn.html

我们演示一个最简单的健康检查模块,只需要在upstream里面添加下面代码,然后在location中启用即可:

check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_keepalive_requests 100;
check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
 
例:
upstream  backend{
server 192.168.163.13:80;
server 192.168.163.14:80;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx; }
server {
location / {
proxy_pass http://backend;
}
location /status{
check_status;
}
}
 
然后重启Nginx,在浏览器中输入 IP/status即可查看到监控状态,比Nginx的功能要好的多;
   
当我停掉其中一台服务器的时候,健康状态检查就会显示有一台服务器挂了;
   
当Nginx请求超过5次,还是处于宕机状态时,就会标红显示;
   
当我恢复其中一台服务器以后,两台Web服务器的状态马上又恢复了;
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Tengine笔记3:Nginx的反向代理和健康状态检查的更多相关文章

  1. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginxrpm   -qi  nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...

  2. nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查报403错误【转】

    在nginx.conf配置文件中 在server添加 location /nstatus { check_status; access_log off; #allow 192.168.2.11; #d ...

  3. Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

    在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php ...

  4. 运维工作笔记-------nginx的反向代理

    1.nginx的反向代理意义 一般来说,我们在项目中,不会直接让项目服务器ip与外网做直接映射,这样一则是不安全,二是客户直接去访问项目服务器,对项目服务器带来的压力太大,从而导致项目运行速度变慢,程 ...

  5. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

  6. [转]Nginx介绍-反向代理、负载均衡

    原文:https://www.cnblogs.com/wcwnina/p/8728391.html 作者:失恋的蔷薇 1. Nginx的产生 没有听过Nginx?那么一定听过它的"同行&qu ...

  7. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  8. 在ubuntu上面配置nginx实现反向代理和负载均衡

    上一篇文章(http://www.cnblogs.com/chenxizhang/p/4684260.html),我做了一个实验,就是利用Visual Studio,基于Nancy框架,开发了一个自托 ...

  9. nginx的反向代理和负载均衡的一个总结

    之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了! 接下来先看一下nginx的反向代理: 简单的来说就是ngi ...

随机推荐

  1. C语言的本质(35)——共享库

    库用于将相似函数打包在一个单元中.然后这些单元就可为其他开发人员所共享,并因此有了模块化编程这种说法- 即,从模块中构建程序.Linux支持两种类型的库,每一种库都有各自的优缺点.静态库包含在编译时静 ...

  2. codecomb 2098【stone】

    题目描述 Description n个石堆围成一圈,提供两种操作: 1.每次将[L,R]堆的石子数量+k,其中,1<=L,R<=n,k>=0. 2.询问有最多石子的那一堆有多少石子. ...

  3. ZOJ3761(并查集+树的遍历)

    Easy billiards Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge Edward think a g ...

  4. 徐汉彬:亿级Web系统搭建—单机到分布式集群

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...

  5. fullcalender

    http://blog.csdn.net/francislaw/article/details/7740630 引用 <link rel="stylesheet" href= ...

  6. SHDP--Working With HBase(一)之基本介绍

    最近在做web项目使用到了Hadoop,HBase,在这里对Spring For Hadoop(SHDP)的使用做个总结,主要使用了SHDP中提供的一些封装好的HBase模块. Spring For ...

  7. N种方法妙讲LIS算法

    LIS算法经典汇总 假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5.下面一步一步试着找出它.我们定义一个序列B,然后令 i = 1 to 9 逐个 ...

  8. wpf Visibility 动画

    XAML实现: [xhtml] view plaincopy <Border Height="100" Width="80" CornerRadius=& ...

  9. CentOS 6.5下Percona Xtrabackup的安装错误解决方案

    1.下载最新版的Xtracbackup 2.安装 yum install perl-DBIyum install perl-DBD-MySQLyum install perl-Time-HiResyu ...

  10. @page指令 validateRequest的作用

    在 Web 应用程序中,要阻止依赖于恶意输入字符串的黑客攻击,约束和验证用户输入是必不可少的.跨站点脚本攻击就是此类攻击的一个示例.其他类型的恶意数据或不需 要的数据可以通过各种形式的输入在请求中传入 ...