您的位置:首页 > 运维架构 > Nginx

通过Nginx使全站页面变灰,哀悼玉树地震遇难者

2010-12-03 00:33 232 查看
4月21日全国哀悼日,将去除网站全站所有站点色彩(变灰),悼念遇难同胞,愿死者安息。

  金山逍遥网旗下站点众多,虽然官网都有统一
的页头、页尾,但是,还有一部分站点(例如用户中心、注册充值页面、游戏客户端内嵌网站、活动专题页等)页头、页尾不相同。但是,所有站点采用的都是
Nginx服务器,95%以上的站点都经过Nginx负载均衡服务器,因此只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的
HTML中增加一行:

<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>

  就可以实现在IE及IE内核浏览器下,所有网站变灰色。步骤如下:

  1、重新编译Nginx,增加http_sub_module模块:

wget http://nginx.org/download/nginx-0.8.35.tar.gz

tar zxvf nginx-0.8.35.tar.gz

cd nginx-0.8.35

./configure
--user=www --group=www --prefix=/usr/local/webserver/nginx
--with-http_stub_status_module --with-http_ssl_module
--with-http_sub_module

make && make install

pkill -9 nginx

/usr/local/webserver/nginx/sbin/nginx

  2、在nginx.conf配置文件的http {...}大括号内增加以下两行:

sub_filter '</head>' '<style
type="text/css">html
{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}</style></head>';

sub_filter_once on;

  保存后,重新加载配置文件:

/usr/local/webserver/nginx/sbin/nginx -t

/usr/local/webserver/nginx/sbin/nginx -s reload

  3、如果某些带有Flash的页面仍显示彩色,或浏览器上下滚动条拖动时Flash FLV播放器变花(例如剑网3、剑侠世界官网分流页),将Flash改为JS输出(本例为SWFObject):

<script type="text/javascript" src="http://v.xoyo.com/site/v.xoyo.com/web/js/swf.js"></script>

<div id="video_content"></div>

<script type="text/javascript">

<!--

var
video_player_so = new
SWFObject("http://api.v.xoyo.com/external/player.swf?autostart=true&config=http://api.v.xoyo.com/external/video-542.swf",
"sotester", "439", "246", "7");

video_player_so.addParam("wmode", "opaque");

video_player_so.addParam("allowfullscreen","true");

video_player_so.addParam("allowscriptaccess","always");

video_player_so.write("video_content");

//-->

</script>

  这样,整个页面,包括Flash播放器中的视频就都变灰色了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: