Tag - 运维

运维    2017-01-06 00:00:29    49    0    0

需求

    当Iphone/Ipad/Android 等访问 http://www.xxx.com 时跳转到 http://www.xxx.com/mobile/xxx/mobile.html?ref=www.xxi.com/


分析

    squid不自带 url重写/跳转 功能, 要实现这些功能需要借助重定向器来解决通过redirect_program指令 指定一个重定向器 来处理url的重写/跳转redirect_program 可以用perl/php/python 甚至shell来编写

 

思路

    使用squid的redirect_program 指令 ,指定一个重定向器处理url跳转, 使用acl 匹配Iphone, Ipad, Android 平台


过程

tip

    根据[squid权威手册]得知,重定向器从标准输出接收squid数据, 每一行包括以下4个元素:

1. 请求url

2. 客户IP地址和完全可验证域名

3. 用户名,通过RFC 1413 ident或代理验证

4. HTTP请求方式

exp: http://www.example.com/page1.html 192.168.2.3/- - GET

 

了解这个是非常重要的,本人就是因为一开始不知道这个,导致我的重定向器无法使用

    

    然后, 重定向程序永不退出,除非在标准输入里发生end-of-file 这个也是很重要的,不然会导致重定向器的进程占用大量的cpu.最后, 重定向器返回空行, squid将不会对url做任何处理,该怎样还是怎样

 

产生一个重定向消息

    网络上很多是基于perl的. 由于我不擅长那家伙, 于是我就用python写了一个例子.


#!/usr/bin/python
import sys
import re
URL_PATTERN = re.compile('(?P<scheme>https?://)(?P<host>[^/]*)(?P<request>.*)')
GUIDE = re.compile("^/mobile/xxx/mobile\.html")
def redirect(line):
    old_url = line.split()[0] 
    m = URL_PATTERN.match(old_url)
    if not m: return '\n'
运维    2017-01-05 23:46:27    39    0    0

背景


    2013年03月29日,eleven所属单位 被未知生物ddos攻击, 攻击时间 凌晨00:15 左右, eleven不在现场.其他同事处理的, 第二天eleven来到公司, 接到上面命令找出服务器弱点.同时还原攻击现场,


检查


    通过Zenoss监控图, 看见在00:15左右, 突然进来了大量的数据包, 大概40w左右, 但是流量没有明显异常(即没有瞬间增高), 好吧, 看见这个