|
本帖最后由 dreampet 于 2016-9-20 07:28 编辑
0. 引文
自从年中各个网盘宣布关闭后,便一直在考虑如何搭建一台私有的云服务器,能具备家庭内部的文件共享(NAS),个人工作文件、代码的版本管理(VCS)以及文件在各个办公环境的同步(SYNC)等功能,历经两个多月,经过多次的推翻重构,终于有了以下的方案,由于过程中颇多曲折,于是有了此文,一是总结心得,二是供后来者参考。
1. 硬件配置
从灵活性及成本的角度考虑,主机为自己组装,如果各位对成本不敏感,强烈推荐采用HP的Gen8,其自带的iLO简直就是神器,同时带有硬件RAID卡,而我因为经历过一次历时8小时的RAID5的重构后,再也提不起用RAID的意愿。
机箱:4盘位+1全高PCIE挡板 的NAS专用机箱,淘宝上采购,价格295
主板:华擎 J3160-ITX(赛扬4核2.24G,4路SATA 3.0,1个PCIe 2.0 x1卡槽, 1个半高mini-PCIe卡槽),淘宝上采购,价格492
内存:威刚 DDR3L 1600 8G 两条,京东采购,单条249,合计298
电源:航嘉 HK250 小1U电源,额定功率150W,淘宝采购,价格175
存储硬盘:东芝 2TB 监控级硬盘(DT01ABA200V) 3个,京东采购,单价479,合计1437
系统硬盘:东芝 250G 2.5寸笔记本硬盘,旧笔记本拆机,用于安装系统
网卡:主板集成RTL8111E千兆网卡
无线网卡,Intel Wireless-N 1030 旧笔记本拆机,用于远程桌面管理
组装后的效果:
2. 动态域名解析
为了便于管理,申请了一个.online后缀的顶级域名,年费23,并附赠5个子域名,用来分别指向版本管理、私有云等功能。
由于目前安装的宽带有公网IP,所以利用花生壳的免费域名动态解析功能即可满足要求,动态域名解析在路由器上进行配置,我用的是OpenWRT,没有自带花生壳的域名解析功能,需要按照花生壳的说明进行自定义配置:
3. 系统安装、配置
3.1 系统安装
系统选用Windows Server 2012 R2,并通过内置的Hyper-V 虚拟机安装Ubuntu 系统(这就是装16G内存的原因)。
为了便于管理,系统安装于独立的250G笔记本硬盘中,其它3个2T硬盘均不分区直接使用,并根据硬盘槽的位置从1到3命名。
3.2 系统配置
3.2.1 角色和功能安装
系统第一次启动后,进入服务器管理器,安装以下角色及功能:Hyper-V、IIS、远程桌面、NFS客户端、SMB文件共享支持,如果有无线网卡的话,还需要安装无线LAN服务,否则即使安装好网卡驱动,也无法连接无线网络。
3.2.2 账号权限配置
Server 2012 R2 系统的默认权限是为域管理设置的,而目前只有一台独立的主机,因此需要进行相关的设置,让文件共享及远程桌面功能能正常使用。
a. 允许匿名访问服务器共享
分别设置组策略的本地安全选型、远程桌面去除网络级别的身份验证、关闭密码保护共享,具体如下图所示:
b. 激活远程桌面授权服务器
远程桌面需要单独激活,系统安装后有120天的宽限期,需要在这期间进行激活,激活过程很简单,进入“开始菜单”,运行“RD授权服务器”,点击“操作”-“激活服务器”,按提示进行即可激活成功。
激活成功后还需要安装授权,否则默认只有两个设备授权,关于远程服务器的激活及授权,可以参考这篇文章http://bbs.51cto.com/thread-1026083-1.html,这是目前我找到的最完善的配置说明。
c. 文件夹共享
在需要共享的文件夹上点击右键,选择共享,按以下图片操作即可:
4. 版本管理系统安装
版本管理选用开源Gitblit,官方网站是:http://www.gitblit.org/,该系统基于Java开发,因此需要先安装Jave 运行库(JRE),建议安装最新的64位JRE 8u102。
Gitblit 的安装非常简单,将下载的gitblit go 压缩包解压至任意目录即可直接运行,具体安装过程参照官方说明文档:http://www.gitblit.org/setup_go.html , 安装后的效果如下:
5. 私有云盘安装
私有云选用Seafile的开源版,基于Python开发,安装同样是非常简单,解压缩至任意目录即可直接运行,具体安装过程参照官方说明文档:http://manual-cn.seafile.com/dep ... y_with_windows.html,安装后效果如图:
另外还提供有专门的客户端,用于各个电脑之间进行文件同步,每个文件均可查看修改后的历史记录:
6. IIS及域名配置
6.1 端口映射
为了能在外网访问服务器,需要在路由器中做端口映射,openWRT的参考设置如下:
其中,Gitblit占用了8010和29418两个端口,8010为Web端口,29418为ssh端口。
Seafile占用了8000和8082两个端口,8000为Web端口,8082为文件下载端口。
IIS占用了80、21、443端口,分别为http,ftp,https。
远程桌面占用了3389端口。
6.2 启用HTTPS功能
由于运营商将家用宽带的80端口封杀掉,所以只能通过将80端口映射为8080来进行远程Web访问,这样访问服务器就需要采样www.test.online:8080的URL形式,不过经过测试,发现443端口并没有被封掉,于是决定将IIS的网站配置成https方式。
6.2.1 申请SSL证书
为了避免每次访问网站都出现证书无效的提示,决定为服务器申请一个SSL证书,搜索了下,选用沃通的3年免费SSL证书,只需要提供有效的邮箱即可申请,申请完马上就可以下载到证书,然后根据说明导入到服务器中即可。
6.2.2 绑定证书
接下来,需要为IIS网站绑定https端口,具体操作如下图所示,按步骤操作即可。
可以看到,能直接以https://www.test.online的方式直接访问,且证书有效
6.3 反向代理
从6.1可以看到,IIS、Gitblit及Seafile均有自己的端口,需要分别指定端口才能访问相应的服务,为了避免这种情况,需要利用IIS的URL-Rewrite实现反向代理功能,通过子域名的方式进行访问。
具体分配为:
https://www.test.online 指向 IIS页面 (80,443端口)
https://git.test.online 指向 Gitblit页面 (8010端口)
https://cloud.test.online 指向 Seafile页面 (8000端口)
https://cloud.test.online/seafhttp 指向 Seafile的下载端口 (8082端口)
IIS默认并不安装URL Rewrite模块,需要去这个页面下载安装:http://www.iis.net/downloads/microsoft/url-rewrite , 应下载x64版本
安装后,即可在IIS管理器中看到该模块:
下面以Gitblit为例,介绍如何创建反向代理规则:
a. 双击该模块,点击右侧的Add Rules,添加一条空白的规则,在“Match URL”中,Pattern输入“^(.*)”表示匹配所有网址;
b. 在"Conditions"中,增加条件匹配,Input输入{HTTP_HOST},Pattern输入“^git.test.online$”,接下来,再增加一个条件匹配,在Input中输入{HTTPS},在Pattern中输入”on“,这两条规则表示,只有匹配到以https://git.test.online这个网址访问时,执行相应的操作
c. 在”Action“中,”Rewrite URL“输入"http://localhost:8010/{R:1}"
以上规则即表示,当匹配到以https://git.test.online网址访问时,将返回http://localhost:8010的内容。
6.4 请求筛选
如果在安装IIS服务器时,你选了ASP.NET应用池的支持,那么还需要将IIS网站的”请求筛选“中的文件扩展名清空,否则会出现无法下载Seafile中存储的对应扩展名的文件的情况。
注:如果需要跑.NET应用,从安全性来考虑,最好另外新建一个网站。
7. 其它应用
到此,主要的服务就配置完成了,其它方面的应用就自由发挥了,比如用来做BT下载、迅雷离线下载、百度云远程推送等。或者在Hyper-V中安装其它的操作系统进行测试等等。
8. 文件备份
目前除了系统盘外,共有三个数据盘,其中一个专门用来做局域网共享,主要存储电影电视及音乐,这个盘不做备份。
另外两个盘,一个用于Gitblit及Seafile的数据存储,另一个则用于备份,备份采用FreeFileSync软件做镜像热备份。
9. 客户端工具
对于NAS,可以在手机或者智能电视上安装相应的播放器,比如电视上的”小白播放器“、手机上的”威动影音“都支持播放局域网共享的视频文件。
对于GIT,推荐安装TortoiseGit工具,进行版本管理,相对Git GUI 更加的直观。
对应Seafile,有Windows、Android及IOS下的客户端可用。
10. 硬件升级
存储:这个机箱除了4个热插拔硬盘位以外,内部还有一个2.5寸的硬盘位,因此可以考虑增加一块PCI-e x1 转 SATA+mSATA的转接板,将系统安装在mSATA接口的SSD硬盘中,另外5个硬盘用于存储。
主板:如果J3160 这颗CPU的性能不满足要求,可以考虑升级成J3710(奔腾4核,2.64G)
注: 本文仅发表于阿莫论坛,禁止转载! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|