博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tengine笔记3:Nginx的反向代理和健康状态检查
阅读量:6472 次
发布时间:2019-06-23

本文共 2366 字,大约阅读时间需要 7 分钟。

  通常代理服务器只用于处理内部网络对Intenet的请求,客户端必须通过代理服务器把本来要发送到Web服务器上的请求通过代理服务器分发给Web服务器,Web服务器响应时再通过代理服务器把响应发给客户端;
 
下面是一个反向代码的物理网络图:
 
下面通过三台服务器来实现这个经典的反向代理结构:
  反向代理服务器:1台Tengine服务器
  Web服务器:2台Web服务,搭载Tomcat的应用服务器
 
Tomcat的应用服务器的搭建:
 
安装Java JDK
下载JDK1.7 
安装命令:
 
rpm -ivh jdk-7u79-linux-x64.rpm
    
配置环境变量 :  
  
vi ~/.bash_profile PATH=$PATH:$HOME/binJAVA_HOME=/usr/java/jdk1.7.0_79/PATH=$PATH:$JAVA_HOME/binexport PATH
保存完以后  java -version 查看是否成功
 
安装Tomecat
安装Tomcat,Tomcat是绿色版软件,所以下载后直接解压到相应的目录即可,下载地址:
  
#解压:tar -zxvf apache-tomcat-7.0.61.tar.gz mv apache-tomcat-7.0.61 /usr/local/tomcat#将端口改为80vim /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的状态监控分为两种:

    

文档:

我们演示一个最简单的健康检查模块,只需要在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服务器的状态马上又恢复了;
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载地址:http://cepko.baihongyu.com/

你可能感兴趣的文章
xml-apis-ext.jar
查看>>
ArcGIS教程:编辑特征
查看>>
使用logrotate管理nginx日志文件
查看>>
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方式
查看>>
iOS 疑难杂症 — — 在 Storyboard 里 Add Size Class Customization 后再从代码里无法修改的问题...
查看>>
自定义注解 相关知识汇总(转)
查看>>
linux 修改IP, DNS 命令
查看>>
异步|同步&阻塞|非阻塞
查看>>
PHP 实现数学问题:组合
查看>>
Spark学习笔记总结-超级经典总结
查看>>
摄像头拍照,PHP输入流php://input的使用分析
查看>>
财务对账-资金统计
查看>>
HIVE删除表数据
查看>>
从头开始搭建一个mybatis+postgresql平台
查看>>
2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem D. Distance 迪杰斯特拉
查看>>
ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览
查看>>
PHP函数之日期时间函数date()使用详解
查看>>
easyui中datagrid用法,加载table数据与标题
查看>>
【Consul】 分布式环境中的服务注册和发现利器
查看>>
G2 2.0 更灵活、更强大、更完备的可视化引擎!
查看>>