博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nrw
阅读量:6155 次
发布时间:2019-06-21

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

hot3.png

package rewrite;use nginx;use Hash::ConsistentHash;use String::CRC32;use IO::Socket;use Net::SMTP;  use MIME::Base64;  use IPC::ShareLite;use Storable qw(freeze thaw);use IPC::SysV qw(S_IRWXU IPC_CREAT);use IPC::Semaphore;my @serv_list = qw();my $share = IPC::ShareLite->new(        -key     => 1949,        -create => 'yes',        -destroy => 'yes') or die $!;my $sem = IPC::Semaphore->new(1564, 1, S_IRWXU|IPC_CREAT) || die "IPC::Semaphore->new: $!\n";sub handler {    		my $r = shift;    		my $uri = $r->uri;            	my $domain = $r->header_in(host);		my $test="" ;		if ($sem->getval(0) == 0){			$test = $share->fetch;		}			if ($test ne "") {			splice(@serv_list);			my $list = thaw($share->fetch) || print "Wrong\n\n";			@serv_list = @$list;		}            my $chash = Hash::ConsistentHash->new(            buckets => [@serv_list],            hash_func => \&crc32            );            my $url = $chash->get_bucket($uri);			#$url = "http://".$url."/".$domain.$uri;			$url = "http://".$url.$uri;            $r->header_out(Location => $url);            $r->status(302);            $r->send_http_header;            return OK;}1;__END__

转载于:https://my.oschina.net/binarythinking/blog/191022

你可能感兴趣的文章
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>