2014年9月24日星期三

Nginx 下配置 Seahub

准备工作

Ubuntu 下安装python-flup库:
sudo apt-get install python-flup

Nginx 环境下部署 Seahub/FileServer

Seahub 是 Seafile 服务器的网站界面. FileServer 用来处理浏览器端文件的上传与下载. 默认情况下, 它在 8082 端口上监听 HTTP 请求.
这里我们通过 fastcgi 部署 Seahub, 通过反向代理(Reverse Proxy)部署 FileServer. 我们假设你已经将 Seahub 绑定了域名"www.myseafile.com".
这是一个 Nginx 配置文件的例子.
以下内容可以添加到
 /etc/nginx/sites-enabled/default文件中,该文件为一个软连接。
lrwxrwxrwx 1 root root 34 Sep 24 01:13 /etc/nginx/sites-enabled/default -> /etc/nginx/sites-available/default
server {
    listen 80;
    server_name www.myseafile.com;
    location / {
        fastcgi_pass    127.0.0.1:8000;
        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO           $fastcgi_script_name;

        fastcgi_param    SERVER_PROTOCOL        $server_protocol;
        fastcgi_param   QUERY_STRING        $query_string;
        fastcgi_param   REQUEST_METHOD      $request_method;
        fastcgi_param   CONTENT_TYPE        $content_type;
        fastcgi_param   CONTENT_LENGTH      $content_length;
        fastcgi_param    SERVER_ADDR         $server_addr;
        fastcgi_param    SERVER_PORT         $server_port;
        fastcgi_param    SERVER_NAME         $server_name;
        fastcgi_param   REMOTE_ADDR         $remote_addr;

        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
    }

    location /media {
        root /home/user/haiwen/seafile-server-latest/seahub;
        #以上画底线的需要改为你安装seafile的正确路径
    }
}
对于 Windows 服务器, access_log, error_log and "location /media" 的路径需要被设置成 Windows 的文件路径格式, 如:
    location / {
        ...
        access_log      E:/log/nginx/seahub.access.log;
        error_log       E:/log/nginx/seahub.error.log;
    }
    location /media {
        root E:/seafile-server-1.7.1/seahub;
    }
Nginx 默认设置 "client_max_body_size" 为 1M。如果上传文件大于这个值的话,会报错,相关 HTTP 状态码为 423 ("Request Entity Too Large").
你可以将值设为 0 以禁用此功能,或者在 /seafile/seafile-data/seafile.conf 的 fileserver 字段中重新设定 max_upload_size 的值。

修改 ccnet.conf 和 seahub_setting.py

修改 ccnet.conf

你需要在/data/haiwen/ccnet/ccnet.confSERVICE_URL字段中自定义域名。
SERVICE_URL = http://www.myseafile.com
注意:如果你改变了 Seahub的域名,也需要同步更改SERVICE_URL.

修改 seahub_settings.py

请在seahub_settings.py新增一行,设定FILE_SERVER_ROOT的值
FILE_SERVER_ROOT = 'http://www.myseafile.com/seafhttp'
设置完成后,需要重启nginx

启动 Seafile 和 Seahub

./seafile.sh start
./seahub.sh start-fastcgi

没有评论:

发表评论