Tengine笔记3:Nginx的反向代理和健康状态检查
2017-08-24 16:39
851 查看
通常代理服务器只用于处理内部网络对Intenet的请求,客户端必须通过代理服务器把本来要发送到Web服务器上的请求通过代理服务器分发给Web服务器,Web服务器响应时再通过代理服务器把响应发给客户端;
下面是一个反向代码的物理网络图:
下面通过三台服务器来实现这个经典的反向代理结构:
反向代理服务器:1台Tengine服务器
Web服务器:2台Web服务,搭载Tomcat的应用服务器
Tomcat的应用服务器的搭建:
安装Java JDK
下载JDK1.7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
安装命令:
配置环境变量 :
保存完以后 java -version 查看是否成功
安装Tomecat
安装Tomcat,Tomcat是绿色版软件,所以下载后直接解压到相应的目录即可,下载地址:http://tomcat.apache.org/download-70.cgi
关闭防火墙查看效果;
为了能够区分出两个Tomcat,我们将Tomcat的默认页面,改为Tomcat 1 : ip 和Tomcat 2 : ip
Tengine的服务器的搭建:
参照:http://www.cnblogs.com/lovelanglangyou/p/7422916.html
配置Tengine的配置文件,将客户端请求的IP转发向两台Web应用服务器:
重启Nginx
然后我们用不同的浏览器,去反复请求 192.168.163.11 会发现,服务器会在两个Tomecat之间来回切换;
为添加tengine的状态监控
Tengine的状态监控分为两种:
文档:http://tengine.taobao.org/documentation_cn.html
我们演示一个最简单的健康检查模块,只需要在upstream里面添加下面代码,然后在location中启用即可:
例:
然后重启Nginx,在浏览器中输入 IP/status即可查看到监控状态,比Nginx的功能要好的多;
当我停掉其中一台服务器的时候,健康状态检查就会显示有一台服务器挂了;
当Nginx请求超过5次,还是处于宕机状态时,就会标红显示;
当我恢复其中一台服务器以后,两台Web服务器的状态马上又恢复了;
下面是一个反向代码的物理网络图:
下面通过三台服务器来实现这个经典的反向代理结构:
反向代理服务器:1台Tengine服务器
Web服务器:2台Web服务,搭载Tomcat的应用服务器
Tomcat的应用服务器的搭建:
安装Java JDK
下载JDK1.7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
安装命令:
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的服务器的搭建:
参照:http://www.cnblogs.com/lovelanglangyou/p/7422916.html
配置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的反向代理和健康状态检查
- Tengine笔记3:Nginx的反向代理和健康状态检查
- 带健康状态监测的nginx做反向代理多台服务器实现负载均衡
- 如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查
- nginx(六)反向代理(proxy)与负载均衡(upstream)以及健康状态监测。
- nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查报403错误【转】
- Nginx实战系列之功能篇----后端节点健康检查
- nginx自动检测后台服务器健康状态
- 完成rs健康状态检查。
- nginx自动检测后台服务器健康状态
- nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况
- Varnish后端主机的健康状态检查
- nginx检测后台的webserver健康状态
- Linux Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点
- Nginx实现反向代理,负载均衡,url重写以及健康检测
- 服务器健康状态检查脚本
- LVS均衡负载(三) LVS后端服务健康状态检查
- Nginx ~健康状态监测~ 推荐
- 【转】nginx 主动式后端服务器健康检查
- nginx 主动式后端服务器健康检查