通过nginx反向代理seafile

Seahub 是 Seafile 服务器的网站界面. SeafServer 用来处理浏览器端文件的上传与下载. 默认情况下, 它在 8082 端口上监听 HTTP 请求.

这里我们通过反向代理(Reverse Proxy)部署 SeafServer. 我们假设你已经将 Seahub 绑定了域名"yun.xianmoyi.com".

一、 修改Nginx 配置文件(可以在conf目录中增加虚拟站点)

erver {
listen 80;
server_name yun.xianmoyi.com;

proxy_set_header X-Forwarded-For $remote_addr;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;

# used for view/edit office file via Office Online Server
client_max_body_size 0;

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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
proxy_request_buffering off;
send_timeout 36000s;
}

location /media {
root /home/seafile/seafile-server-latest/seahub;
}
}

二、修改 SERVICE_URL 和 FILE_SERVER_ROOT

直接通过管理员 Web 界面来设置这两个值(系统设置中) :

SERVICE_URL: http://www.myseafile.com
FILE_SERVER_ROOT: http://www.myseafile.com/seafhttp

三、注意事项

通过实际部署发现,在centos7本机下通过nginx进行代理会报502错误,通过另一台centos6.5的nginx进行代理则访问正常

因为nginx配置文件中

location /media {
root /home/seafile/seafile-server-latest/seahub;
}

的内容是在本地,nginx代理服务器中并无此目录,所以

1.要利用nfs将网站服务器中的 /home/seafile/seafile-server-latest/seahub 目录挂载到nginx代理服务器中

2.同时/home/seafile/seafile-server-latest/seahub/media 目录下avatars、custom 是两个链接文件,指向/home/seafile/seahub-data。所以 seahub-data 目录也要挂载到nginx代理服务器中