nginx 破解静态文件防盗链

今天碰到一个国内被和谐掉的站点感到很有意思.

于是想避免每天扶梯子去登录这个站点,就想到了nginx 的 反向代理。 nginx 的反向代理平时百用百灵,可是今天死活不灵了.

查看了一下此站的源代码,发现静态文件全部使用单独的一个域名来表示,nginx 反代已经很完美的解决掉了静态部分,但是静态部分例如css, js 等等,死活也加载不出来。。查看nginx 的error 日志,发现 nginx 的 间断性的出现 502 错误,再仔细一看,nginx 说upstream 总是提早关闭TCP 链接。。。我起初以为是网络的问题,就在洛杉矶的独立服务器上拆出来一个VPS用来专门反代这个静态文件的域名,仍然出现502 错误。。。

这个时候才想到,是不是这个域名限制了referrer 来源?????

于是赶紧在nginx 的config 代码里面加上proxy_set_header Referer $host; 重启nginx, 问题圆满解决。。。

下次遇到同样问题的时候,可以先在firefox 的livehttp 的 这个扩展当中,慢慢的仔细的看一下 http response 是怎么回事,然后在nginx 的配置文件中根据情况写出相应的配置方案.

极路由装SS插件简单教程

今天给家里的两台极路由装上了SS插件,这下子就方便多了

这里简单记录下步骤,方便以后查阅:

 

  1. 开启极路由开发者模式。安装Shadowsocks插件需要开启开发者权限,如何开启请百度
  2. SSH登录极路由:ssh [email protected] -p 1022 注意:使用root帐号连接路由,端口为1022,密码为后台登陆密码,如果你没有更改IP的话,IP是192.168.199.1
  3. 便捷脚本安装SS:cd /tmp && wget http://cdn.is26.com/file/hiwifi/shadow.sh && sh shadow.sh && rm shadow.sh
  4. 如果遇到失败可以重复上一步并将地址更换为:cd /tmp && curl -k -o ss.sh http://hiwifi-10014337.file.myqcloud.com/ss.sh && sh ss.sh && rm ss.sh 换个服务器换种速度和心情,如果你的第三部已经成功,那么请无视此步。
  5. 重新登录极路由的后台,高级设置里就能看到shadowsocks加速了,填写账号密码,选择智能模式,enjoy it!

下载:ss.tar

今天犯了一个具SB的问题。。

好久没有用php了。。这两天再准备一个新的国内站点,使用php 写的。。没办法又得重新熟一遍。。。

有一个bug,debug了很久。。才突然发现,我把函数给 echo 了。。。哎。。函数什么时候可以echo。。。

我这脑子啊。。。

另外还有一个问题要注意的是,如果函数内部引用外部的变量,需要加上GLOBALS

伪视频流技术(Pseudo Streaming)

做视频站点的人,都会或多或少的接触伪视频流技术

伪流技术是一种能在常见HTTP服务器如APACHE、tomcat、IIS或lighttpd, nginx 上安装提供的一种协议。它使用服务端脚本来提供FLASH到服务器的视频交互。播放器在URL上携带start time的参数发送HTTP请求到服务端,服务端的脚本处理视频流并且给予回复,保证提供的视频流起始位置与START TIME参数所对应。这个start time的参数通常命名为“start”,这个技术同样被风靡全球的youtube所使用,它使用的是lighttpd WEB服务器。

 

对于播放器来说,使用伪流或其他流式的解决方案最大的好处是:能跳转到尚未下载到的视频部分。这种情况在很符合大文件播放需求,比如2个小时的视频,用户想立刻跳转到它的后面部分开始播放,(这样不需要下载中间用户不关心的部分了)。好处如下:

 

# 能够随机跳转到视频的任意时间
# 从视频的中间开始播放
# 提供客户方流媒体服务器和服务端脚本集成的可能(???)
# 支持FLV和H.264的视频

更多

查看linux configure arguments

We can use nginx as an example:

[[email protected]:~]nginx -V
nginx version: nginx/1.4.1
built by gcc 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
TLS SNI support enabled
configure arguments: –prefix=/etc/nginx/ –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
–http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=nginx –group=nginx –with-http_ssl_module
–with-http_realip_module –with-http_addition_module –with-http_sub_module –with-http_dav_module
–with-http_flv_module –with-http_mp4_module –with-http_gzip_static_module –with-http_random_index_module
–with-http_secure_link_module –with-http_stub_status_module –with-mail –with-mail_ssl_module
–with-file-aio –with-ipv6 –with-cc-opt=’-O2 -g’ –add-module=/usr/src/headers-more-nginx-module-0.20

 

If we compile nginx from source, we can use

./configure –with-http_flv_module –with-http_mp4_module –with-other-modules

在landing page上增加audio

一般人的解决方案是用niftyplayer 来增加audio,但是我个人可能会更加喜欢yahoo media 的解决方案。 Anyway,众口相传的解决方案确实是有道理的

使用办法:

  1. 下载niftyplayer: niftyplayer
  2. 把下列代码加入你的LP当中

<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0″ width=”165″ height=”38″ id=”niftyPlayer1″ align=””>
<param name=movie value=”niftyplayer.swf?file=betty.mp3&as=1″>
<param name=quality value=high>
<param name=bgcolor value=#FFFFFF>
<embed src=”niftyplayer.swf?file=betty.mp3&as=1” quality=high bgcolor=#FFFFFF width=”165″ height=”38″ name=”niftyPlayer1″ align=”” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer”>
</embed>
</object>

注意字体为红色的地方,是你需要修改的

把betty.mp3改为你的mp3的文件

as = 1 表示自动播放,0表示不是自动播放

 

make clean与make distclean的区别

经常编译linux, 会发现make distclean这个名字。

make clean仅仅是清除之前编译的可执行文件及配置文件。
而make distclean要清除所有生成的文件。

Makefile

在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:

make

根据Makefile编译源代码,连接,生成目标文件,可执行文件。

更多