昨天偶然看到一则微博,通过改HOST可以解禁之前因为地区显示的被下架的歌曲,微博上提供了一个IP,然后查看了下发现是一个国外的机器,应该是作者搭建的,想起来手上有几个吃灰的VPS。在GITHUB上搜索了下,看到了分享的资源,我也是第一次用反代,所以过程可能有些繁琐,不过按照步骤来做应该没有什么问题。

下架的音乐会提示这个..! 闲置了几个机器,文中我用的是搬瓦工的64M最低配置的机器,因为中间有几个模块需要安装,这里我选择最简单的debian

安装nginx与with-http_sub_module模块

1.添加dotdeb源

#debian6
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
 
#debian7
echo -e 'deb http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list
echo -e 'deb-src http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list
#添加dotdeb源,已多次介绍dotdeb源的好处
 
#import GnuPG key
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
rm dotdeb.gpg

2.更新源

apt-get update
apt-get install nginx-full
#nginx-full这个包里面包含着所有需要用到的模块。

配置反向代理文件

Nginx的缺省站点的配置文件是/etc/nginx/sites-available/default,修改这个文件中的如下部分:

server {
        listen 80;
        server_name music.163.com;
        resolver 114.114.114.114;
        set $backend_upstream "http://music.163.com";

        location / {
               proxy_pass $backend_upstream;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Accept-Encoding "";

               subs_filter_types *;

               subs_filter '"st":-.+?,' '"st":0,' ir;
               subs_filter '"pl":0' '"pl":320000';
               subs_filter '"dl":0' '"dl":320000';
               subs_filter '"sp":0' '"sp":7';
               subs_filter '"cp":0' '"cp":1';
               subs_filter '"subp":0' '"subp":1';
               subs_filter '"fl":0' '"fl":320000';
               subs_filter '"fee":.+?,' '"fee":0,' ir;

        }

        location /eapi/song/enhance/player/url {
               proxy_pass http://localhost:5001;
        }
}

配置完成后重启nginx.

/etc/init.d/nginx restart
service nginx restart

运行python文件

安装环境

apt-get install python-dev python-pip
pip install tornado
pip install flask
pip install requests

把runapi.py丢到root目录下并运行:

python runapi.py -m server -p 5001 -a 127.0.0.1

因为这次采用的机器配置很低,所以怕运行太大死了进程,为了保证反代顺利运行,我安装了一个supervisor。

安装守护:
apt-get install python-pip python-m2crypto supervisor
编辑如下文件:
nano /etc/supervisor/conf.d/unlock.conf
配置内容如下:
[program:unlock]
command=python /root/runapi.py -m server -p 5001 -a 127.0.0.1
autorestart=true
user=root
启动:
service supervisor start
supervisorctl reload
修改以下文件:
nano /etc/profile
nano /etc/default/supervisor
结尾添加3行:
ulimit -n 51200
ulimit -Sn 4096
ulimit -Hn 8192
debug查看日志:
supervisorctl tail -f unlock stderr
启动/重启/停止:
supervisorctl start/restart/stop unlock