通常代理服务器只用于处理内部网络对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. ## GridView 布局:item设置的高度和宽度不起作用、自动适配列数、添加Header和Footer ##

    一.item设置的高度和宽度不起作用 转自:http://www.cnblogs.com/0616--ataozhijia/p/6031875.html [Android Pro] listView和 ...

  2. 正则表达式小试牛刀--匹配我的csdn博文标题

    正则表达式小试牛刀--匹配我的博文标题 作者:vpoet 邮箱:vpoet_sir@163.com 正则匹配,我以我的博客页面的博客标题为例:http://blog.csdn.net/u0130187 ...

  3. Linux中查看是否是固态硬盘(SSD)

       最近在准备测试,需要看看哪些机器挂载的是ssd硬盘,Google了一圈看到了许多方法,但都云里雾里的,不知道怎么确定.ssd硬盘貌似使用的也是scsi接口,所以根据盘符的名称也是判断不出来的.最 ...

  4. 【转】使用 udev 高效、动态地管理 Linux 设备文件

    简介: 本文以通俗的方法阐述 udev 及相关术语的概念.udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例.本 ...

  5. UGUI Button控件

    今天一起来学习下Button控件, Button控件其实是由Text,Button,Image组件形成的. 这里就简单介绍下Button组件 Interactable: 代表该组件是否进行交互, 我们 ...

  6. windows下sqlplus / as sysdba报ora-12560的解决方法

    环境:win7_64位.数据库版本ORACLE11G_R2 在CMD窗口,使用下面三个命令可正常连接数据库:C:\Users\Administrator> sqplus /nolog C:\Us ...

  7. 虚拟化之KVM virsh常用命令篇

    1,查看运行的虚拟机 virsh list 2,查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3,连接虚拟机 virsh console +域名(虚拟机的名称) 4,退出虚 ...

  8. SQL Server 性能小点

    1. 对索引列使用Like语句, 如果是"Like 'aa%'"则使用索引优化, 若是"Like '%aa'"则不使用索引优化. 2. "[Age] ...

  9. xmanager 在 Windows 下远程桌面连接 麒麟

    编辑/etc/gdm/custom.conf,添加如下内容: [daemon] RemoteGreeter=/usr/libexec/gdmgreeter  注:“远程登录界面与本地登录界面相同”功能 ...

  10. XMLHttpRequest Level 2 使用指南

    XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...