您的位置: 首页 » 翻越奥义 » AirGoo方案简要说明

AirGoo方案简要说明

作者:liyangyijie / 时间:September 10, 2015 /分类:翻越奥义 / 标签:none /阅览次数:6,195

前提是,我们已经把域名指向了服务器并且为该域名申请了一份ssl证书(或自签)。

这里采取的方案是单服务器AirGoo(1.1.5)+nginx+debian 7。


一,环境部署

首先我们需要一个Node.js环境,这里可以根据

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

进行简单部署。

apt-get install -y apt-transport-https curl
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
apt-get install -y nodejs

为了方便安装nginx(>1.7.3),这里先添加dotdeb的源。

echo "deb http://packages.dotdeb.org wheezy all" >> /etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org wheezy all" >> /etc/apt/sources.list
wget -q -O - http://www.dotdeb.org/dotdeb.gpg | apt-key add -

debian 8 的话就把上面wheezy换成jessie
然后一键安装nginx

apt-get install nginx-full


二,获取配置AirGoo
1,获取
AirGoo开源项目地址如下
https://github.com/spance/AirGoo
首先下载AirGoo到/var/www/目录下,如果不存在/var/www/目录就创建一个

mkdir /var/www
cd /var/www
wget https://github.com/spance/AirGoo/archive/master.zip

一般事先没有安装解压zip的工具,所以先安装解压工具然后解压

apt-get install zip unzip
unzip master.zip

解压出来的文件夹应该是AirGoo-master。

2,配置
进入AirGoo-master,修改config.json。

由于是通过nginx作为前端,所以把监听地址修改为127.0.0.1,

这里把字体改成繁体,自动去掉安全搜索。

sed -i -e 's/0.0.0.0/127.0.0.1/' -e 's/zh-CN/zh-TW/' config.js

3,进程守护
这里使用supervisor,鉴于小内存vps进程容易挂掉,可以自动重启。
写入/etc/supervisor/conf.d/AirGoo.conf如下内容

[program:AirGoo]
command=node /var/www/AirGoo-master/server.js
user=www-data
autostart=true
autorestart=true

然后重新载入一下

supervisorctl reload


三,配置nginx

先操作这个文件/etc/nginx/nginx.conf

找到http段落相关内容,修改如下

http {
...
#Gzip设置
    gzip on;
    gzip_disable "msie6";
    gzip_min_length 1k;
    gzip_proxied any;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
#缓存设置
    client_body_buffer_size  512k;
    proxy_connect_timeout    5;
    proxy_read_timeout       60;
    proxy_send_timeout       5;
    proxy_buffer_size        16k;
    proxy_buffers            4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_temp_path   /home/cache/temp;
    #cache_one是自定义的缓存空间的名字,7d是释放天数,1g是允许占用的最大空间
    proxy_cache_path  /home/cache/path levels=1:2 keys_zone=cache_one:256m inactive=7d max_size=1g;
#ssl统一设定
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_session_tickets  on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
...
}

创建缓存文件夹,保证nginx对缓存区域读写权限,由于是包安装,一般都会有个www-data的用户,直接把缓存文件夹所有权让给www-data用户即可。

mkdir -p /home/cache/{path,temp}
chown -R www-data.www-data /home/cache

注释掉/etc/nginx/sites-available/default里面的所有内容,可以使用下面的命令

sed -i 's/^/#/' /etc/nginx/sites-available/default

在/etc/nginx/conf.d/文件夹下直接创建一个以.conf为后缀的文件,如AirGoo.conf,写入如下内容

server {
listen 80;
#gg.xxx.xxx换成自己的域名
server_name gg.xxx.xxx;
rewrite ^(.*) https://gg.xxx.xxx$1 permanent;
}
server {
listen 443 ssl spdy;
server_name gg.xxx.xxx;
#证书私钥存放地址
ssl_certificate /etc/nginx/gg.xxx.xxx.crt;
ssl_certificate_key /etc/nginx/gg.xxx.xxx.key;
    location / {
        # using cache
        proxy_cache             cache_one;   # 前面定义的key_zone name
        proxy_cache_lock        on;
        proxy_cache_key         $host$uri$is_args$args;
        proxy_cache_valid       200 3d;
        proxy_cache_use_stale   error timeout updating;
        # add cache status header
        add_header          X-Cache $upstream_cache_status;
        # back-end
        # 下面的三个header非常重要
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto https;
        proxy_set_header    X-Forwarded-Host $http_host;
        proxy_http_version  1.1;
        proxy_redirect      off;
                            # Your AirGoo address:port
        proxy_pass          http://localhost:8080;
    }
}

重新载入一下nginx

nginx -s reload





其他方案
https://github.com/cuber/ngx_http_google_filter_module

上一篇 : wp8.1 Anyconnect 配置 下一篇 : OwnCloud+ocdownloader

仅有 1 条评论

  1. 鬼父2333

添加新评论