海运的博客

Nginx Lua Proxy

发布时间:January 12, 2014 // 分类:Nginx // No Comments

location / {
    set $bindip '';
    content_by_lua_file '/usr/local/nginx/lua/proxy.lua';
} 
location /proxy {
    proxy_pass       "http://$host$request_uri";
    proxy_bind       $bindip;
}
local action = ngx.var.request_method
if action == "POST" then
    method = ngx.HTTP_POST
else
    method = ngx.HTTP_GET
end
res = ngx.location.capture(
    '/proxy', { method = method, always_forward_body = true, copy_all_vars = true }
    )
ngx.print(res.body)
ngx.print(res.status)

Nginx Lua HTTP客户端

发布时间:January 12, 2014 // 分类:Nginx // No Comments

git clone https://github.com/liseen/lua-resty-http.git

Nginx配置:

http
{
    llua_package_path "/path/to/lua-resty-http/lib/?.lua;;";
    server {
        location /test {
            content_by_lua_file '/usr/local/nginx/conf/lua/proxy.lua';
        }
}

Proxy.lua内容:

local http = require "resty.http"
local hc = http:new()
local url = "http://"
if ngx.var.http_host then
    url = url .. ngx.var.http_host 
end
url = url .. ngx.var.request_uri  -- 拼接完整的URL
if ngx.var.args then
    url = url .. "?" .. ngx.var.args
end
--[[
local ok, code, headers, status, body = hc:proxy_pass {
url = url,
proxy = "http://192.168.1.5:8118",
timeout = 3000,
headers = ngx.req.get_headers(), -- 传递客户端HEAD
method = ngx.var.request_method, -- 传递客户端method
method = "GET",
}
]]
local ok, code, headers, status, body = hc:request {
    url = url,
    proxy = "http://192.168.1.5:8118",
    timeout = 3000,
    headers = {UserAgent = "Mozilla/5.0"},
    headers = ngx.req.get_headers(), 
    method = ngx.var.request_method,
}
ngx.say(ok)
ngx.say(code)
ngx.say(body)
ngx.say(url)

更多:http://wendal.net/422.html

此内容被密码保护

发布时间:January 12, 2014 // 分类:Linux服务 // No Comments

请输入密码访问

此内容被密码保护

发布时间:January 12, 2014 // 分类:Linux服务 // 2 Comments

请输入密码访问

PHP词库替换

发布时间:January 12, 2014 // 分类:PHP // No Comments

<?php  
   $start = microtime ( true ); 
   function convert($size)
   {
      $unit=array('b','kb','mb','gb','tb','pb');
      return @round($size/pow(1024,($i=floor(log($size,1024)))),2).$unit[$i];
   }

   function strtr_words($str)  
   {  
      $words=array();  
      $content = file_get_contents('t.txt');
      $content = preg_split('/\r\n/', $content, -1, PREG_SPLIT_NO_EMPTY); //分割字符串为数组
      foreach($content as $key => $value)  
      {  
         //if ($key != '')  
         if (!empty($key))  
         {  
            $str_data = explode(',', $value); //分割同义词为k-v数组
            $str = str_replace($str_data[0], $str_data[1] , $str);
            //$words+=array("$str_data[0]"=>"$str_data[1]");  
         }  
      }  
      return $str;
      //return strtr($str,$words);
   }  
   echo strtr_words('村庄,一眼望不到边际')."\n";  
   echo convert(memory_get_usage(true))."\n"; 
   $end = microtime ( true ); 
   echo "脚本执行时间".($end - $start)."\n";  
?>

14.12.22更新:
此方法词库太大时效率很差,可以将词库以key->vale方式加载到内存,文章分词遍历再替换。

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档