2020年6月

Tengine ngx_http_upstream_check_module 健康功能检测使用

ngx_http_upstream_check_module模块可以为Tengine提供主动式后端服务器健康检查的功能。
该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:

--add-module=modules/ngx_http_upstream_check_module

编辑nginx.conf

http {
    upstream cluster1 {
        # simple round-robin
        server 192.168.30.116:80;
        #server 192.168.0.2: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;
    }
    upstream cluster2 {
        # simple round-robin
        server 192.168.30.113:80;
        server 192.168.30.114:80;
        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;
    }
    server {
        listen 80;
        location /1 {
            proxy_pass http://cluster1;
        }
        location /2 {
            proxy_pass http://cluster2;
        }
        location /status {
            check_status;
            access_log   off;
            allow SOME.IP.ADD.RESS;
            deny all;
        }
    }
}
指令后面的参数意义是:
interval:向后端发送的健康检查包的间隔。
fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
timeout: 后端健康请求的超时时间。
default_down: 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。
type:健康检查包的类型,现在支持以下多种类型
tcp:简单的tcp连接,如果连接成功,就说明后端正常。
ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。
http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。
ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。
port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。该选项出现于Tengine-1.4.0。
check_http_send http_packet:
该指令可以配置http健康检查包发送的请求内容。为了减少传输数据量,推荐采用"HEAD"方法。
当采用长连接进行健康检查时,需在该指令中添加keep-alive请求头,如:"HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n"。 同时,在采用"GET"方法的情况下,请求uri的size不宜过大,确保可以在1个interval内传输完成,否则会被健康检查模块视为后端服务器或网络异常。
check_http_expect_alive: 该指令指定HTTP回复的成功状态,默认认为2XX和3XX的状态是健康的。
check_status:
显示服务器的健康状态页面。该指令需要在http块中配置。
在Tengine-1.4.0以后,你可以配置显示页面的格式。支持的格式有: html、csv、 json。默认类型是html。
你也可以通过请求的参数来指定格式,假设‘/status’是你状态页面的URL, format参数改变页面的格式,比如:
/status?format=html
/status?format=csv
/status?format=jsonfan

via:
http://tengine.taobao.org/document_cn/http_upstream_check_cn.html

Tengine快速安装及使用

Tengine是由淘宝网发起的Web服务器项目。它在Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网 ,天猫商城 等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
官网地址:http://tengine.taobao.org
tengine.png
步骤如下:
安装相关依赖包:

yum install gcc openssl-devel openssl openssl-devel -y
cd /opt
wget https://zlib.net/fossils/zlib-1.2.11.tar.gz
tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install

wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
tar xvf pcre-8.42.tar.gz
cd pcre-8.42
./configure --prefix=/usr/local/pcre --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre
make
make install

安装Tengine,最新版本的Tegine可从官网 http://tengine.taobao.org 获取,使用nginx用户运行Tengine





---阅读剩余部分---

CentOS7安装入侵检测工具chkrootkit

rootkit是linux系统下常见一种木马后门程序,通过替换系统文件来达到隐藏和入侵的目的,攻击能力极强;
linux下容易被替换系统程序有login ls ps ifconfig du find nestat 等文件,其中login是最经常被替换的;因为linux登录,无论远程还是本地,都必须要启动/bin/login来收集并核对用户的账号和密码;系统管理员修改密码,攻击者还是可以登录系统的;
rootkit.jpg
安装步骤初始需要的组件:

yum install wget gcc-c++ glibc-static -y

下载安装包:

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5

校验安装包:

md5sum -c chkrootkit.md5
chkrootkit.tar.gz: OK



---阅读剩余部分---

MySQL触发器的创建、查看、删除

介绍
表述:顾名思义在条件符合某种情况时,被触发执行的相关操作。
时间:事件发生前before和发生后after
事件:

名称    介绍
update    可用**old**访问旧数据,**new**访问新数据
delete    可用**old**访问旧数据
insert    可用**new**访问新数据 

创建触发器:

delimiter //  重定义行结束符
    create trigger trigger_name trigger_time trigger_event on table_name for each row
    begin
    -- 需要执行的sql操作语句
    end//
delimiter ;
-- delimiter          用于修改默认的行结束符,由于在触发器中有多条sql语句,他们需要使用分号来结束,但是触发器是一个整体,所以需要先更换默认的行结束符
-- trigger_name     自定义触发器名
-- trigger_time        时间点 before|after
-- trigger_event     事件 delete|update|insert
-- table_name         表名



---阅读剩余部分---

Nginx解决前端跨域问题

CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

当前几乎所有的浏览器(Internet Explorer 8+, Firefox 3.5+, Safari 4+和 Chrome 3+)都可通过名为跨域资源共享(Cross-Origin Resource Sharing)的协议支持AJAX跨域调用。

Chrome,Firefox,Opera,Safari都使用的是XMLHttpRequest2对象,IE使用XDomainRequest。

简单来说就是跨域的目标服务器要返回一系列的Headers,通过这些Headers来控制是否同意跨域。跨域资源共享(CORS)也是未来的跨域问题的标准解决方案。

---阅读剩余部分---

Windows批处理脚本获取前一天日期

Windows批处理获取日期时间还是稍有点复杂,以下脚本为记录获取前一天的日期:

@echo off
rem 获取昨天日期
set YE=%date:~0,4%
set MO=%date:~5,2%
set DA=%date:~8,2%
set DG=1
set/a vY1=%YE% %% 400
set/a vY2=%YE% %% 4
set/a vY3=%YE% %% 100
if %vY1%==0 (set var=true) else (if %vY2%==0 (if %vY3%==0 (set var=false) else (set var=true)) else (set var=false))
set LY=%YE%
set LM=%MO%
if %MO:~0,1%==0 (set MO=%MO:~1,1%)
if %DA:~0,1%==0 (set DA=%DA:~1,1%)
if %DA% GTR %DG% (set/a LD=%DA%-%DG%) else (
if %MO%==1 (set/a LY=%YE%-1) & (set/a LM=12+%MO%-1) & (set/a LD=31+%DA%-%DG%) else (
set/a LM=%MO%-1
if %MO%==3 (if %var%==false (set/a LD=28+%DA%-%DG%) else (set/a LD=29+%DA%-%DG%))
for %%a in (2 4 6 8 9 11) do (if "%MO%"=="%%a" (set/a LD=31+%DA%-%DG%))
for %%b in (5 7 8 10 12) do (if "%MO%"=="%%b" (set/a LD=30+%DA%-%DG%))))
if %LM% LSS 10 set LM=0%LM:~-1%
if %LD% LSS 10 set LD=0%LD:~-1%
set Han=
set Han=%LY%%LM%%LD%
echo 昨天的日期为:%Han%
pause

Nginx实现301跳转

将老域名后导流到新域名:
需要将之前用的www.a.com域名的流量全部跳转到www.b.com
实现效果:比如访问 www.a.com/news/123.html自动跳到www.b.com/news/123.html
使用Nginx的rewrite命令实现:

server {
listen     80;
server_name  www.a.com;
rewrite  ^/(.*)$  http://www.b.com/$1 permanent;
其他配置省略...
}



---阅读剩余部分---

最新

分类

归档

评论

其它