公司有onedrive服务,但是onedrive在国内的速度不是一般的慢啊……不知道是不是墙的原因。
有些个人的文档(项目),不想放在公司的onedrive服务器上,但是家和公司两地的资料同步又是硬性需求。
也试用过坚果、dropbox,但是小的可怜的免费容量限制,实在是憋屈。
万般无奈,只能再次打起azure的主意,自己搞一个私有云吧。
0x01 云系统选择
网上现有的解决方案主要是3种,owncloud, seafile 和 比较新的nextcloud.
略微做了些比较,就先试一下Seafile吧,如果后面有什么新的硬性要求,打算试试nextcloud.
Seafile的开源版功能有限,但估计够用。
2018-9-2 更新: NextCloud版本的搭建已经完成,详细教程件这篇《在Azure上架设私有云NextCloud》
0x02 Azure上创建服务器
-
在Azure上新建一个Ubuntun的服务器
Ubuntun
设置服务器 - 虚拟机的大小,选最便宜的B1s就可以。
-
在配置中,端口将http,https 和SSH开发出来。
端口配置 - 最后完成部署,就可以在azure创建一个linux的虚拟机。
0x03 安装seafile
seafile提供了一个一键安装的教程。
- 先使用SSH工具,通过虚拟机的IP地址,连接到虚拟机上,输入之前设置的用户名XXXXX和密码XXXX。
- 切换成 root 账号 (sudo -i)
- 如果使用的系统是Ubuntu 16.04(适用于 6.0.0 及以上版本)。用下面的命令获取安装脚本
wget https://raw.githubusercontent.com/haiwen/seafile-server-installer-cn/master/seafile-server-ubuntu-16-04-amd64-http
- 运行安装脚本并指定要安装的版本 (6.0.13)。其中6.0.13可以替换成最新的Seafile的版本,版本号在这个页面下可以找到
bash seafile-server-ubuntu-16-04-amd64-http 6.0.13
运行上面的的命令后,会让你选择是安装社区版,还是专业版。社区版选1,专业版选2.
然后就是漫长的安装过程。-
安装好后,会列出默认的登陆用户名和密码。以及一些之后的配置指导。在浏览器中登陆一下地址http://虚拟机的ip。就可以打开在seafile的web界面。输入之前提供的默认用户名和密码,就可以登陆进去了。
安装完成 -
一些必要的修改。从右上角进入系统设置。
进入系统设置
在1和2处输入虚拟机的ip地址,如果关联了域名www.xxxxx.com,那这里可以直接填域名地址。如果不设置,网页上预览和下载的时候会出错。
设置域名 -
新建用户和管理员账号,都可以在这个界面中设置。在新建一个用户后,可以在“管理员”页面中,将新建的用户设置为管理员,然后就可以删除默认的账户admin。
用户
到这里算是把seafile简单搭建起来了。Seafile在window和手机端都有客户端。还是比较方便的。
0x04 设置https域名
默认的seafile服务器使用的是http域名,总觉得不得劲。所以下一步就是想办法设置为https。
先根据之前的这篇《从腾讯云免费申请SSL证书-azure版》极简教程获得SSL的证书文件,下载下来后需要用到里面Nginx文件夹里的两个文件*.crt和*.key。
然后通过SSH工具,远程连接到服务器上。再/etc/nginx/目录上新建一个文件夹命名为SSL
cd /etc/nginx/
sudo mkdir SSL
sudo chmod 777 SSL
然后,通过WinSCP软件作为FTP连接上服务器,讲crt文件和key文件上传到SSL文件夹内。记下这两个文件的完整路径分别为A.crt和B.key
下一步就是对Nginx的配置文件进行设置。如果都是默认路径,那这个文件应该在
cd /etc/nginx/sites-available
# 修改seafile在Nginx下的配置文件
sudo nano seafile.conf
用下面的配置文件完全替换原来的内容。
server {
listen 80;
server_name 你的seafile网站的域名;
rewrite ^ https://$http_host$request_uri? permanent;
# Enables or disables emitting nginx version on error pages and in the "Server" response header field.
server_tokens off;
}
server {
listen 443;
server_name 你的seafile网站的域名;
ssl on;
ssl_certificate /etc/nginx/ssl/A.crt; #pem文件路径
ssl_certificate_key /etc/nginx/ssl/B.key; #key文件路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
server_tokens off;
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_set_header X-Forwarded-Proto $scheme;
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;
}
location /media {
root /opt/seafile/seafile-server-latest/seahub;
}
location /seafdav {
fastcgi_pass 127.0.0.1:8080;
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;
client_max_body_size 0;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
}
}
保存退出。然后重启Nginx, Seafile, Seahub
sudo nginx -s reload
sudo /opt/seafile/seafile-server-6.3.2/seafile.sh restart
sudo /opt/seafile/seafile-server-6.3.2/seahub.sh restart
其中的6.3.2需要换成你安装的seafile的版本号
这样你在浏览器中再输入域名可以看到可爱的绿色锁了。