背景
需要一台有ipv6和超大硬盘的服务器7×24挂byr的pt,以及普通的bt。
买
之前一直租用OneProvier的低价独服
Atom四核,4G DDR3,1T机械盘,无限流量。月租大概是¥70的样子。
问题是,这台独服的硬盘I/O很低,似乎只有几十M/s。加上机房在法国巴黎,线路不算很好。每次下完的bt,打开h5ai都要好几分钟,拖回来的速度也和时间段有关,有时只有几百kBps…还是在idm多线程的情况下…
前几天黑五打折,在某学长的推荐下看到了HostHatch推出的$84年费大盘鸡,配置如下
1x 2.8+ GHz 3 GB RAM 3 TB usable storage 9 TB bandwidth $84 per year Chicago
这配置还是很不错的,买了。
Setup
到手一看,CentOS 7识别不了2T以上的硬盘,LET论坛里,老板说他们的镜像模板有点问题。于是尝试手动重装CentOS…
头一回在noVNC界面下…图形化界面装CentOS…手动上传的镜像进去就只有选Install,直接就图形化…
顶着200ms+的延迟选好各个选项,分完盘… 开始安装… 一看,咋断线了?重连,咋又回到原来的CentOS 6了?
算了算了,装Ubuntu 18.04 吧,又不是不能用。
结果用他家提供的系统模板一键重装… 就好了?开机就认了2.8T的硬盘!

然后惯例,跑个分:https://www.91yuntest.com/dlElc2 (ip由于广播位置有更改,在地理库中还没更新,显示的还是在荷兰,实际在芝加哥)

硬盘IO还是很不错的,估计是有阵列,比OP好多了
安上一些要用到的软件
apt-get update apt-get install -y tar curl ntpdate gzip xz \ git wget screen python-pip htop vnstat vim zip nethogs
和lnmp(见lnmp.org)
踩坑
重定向次数过多
常规操作——创建虚拟主机,git clone下源码,http改301跳https …
咋重定向次数过多???(后来发现是CloudFlare的ssl设置问题)
以为是虚拟主机的conf文件没写好,参照nextcloud官网上的nginx conf文件配置实例改了又改,还是不行。删掉80端口的监听,只通过https访问,只得到nginx的安装成功页面…
一键脚本各种问题
于是尝试用官网提供的一键脚本安装。
第一遍提示apache2安装失败——和nginx端口冲突导致apache2服务无法启动,遂卸载nginx。
第二遍提示apache2已安装——手动卸载掉apache2。
第三遍,第四遍各种问题记不清了,放弃这zz一键脚本了。
docker性能不够
很久以前就见过有nextcloud的docker镜像,当时是尝试给rock64装上,结果当时架构还不支持arm,就罢了。现在官方已支持arm。
pull完官方打包好的镜像,在网上看到需要挂载外部目录这样那样的,想起来这是kvm虚拟机,再套个docker。。。好像性能有损失。。。(刚又查了下,docker对cpu的性能没啥损失,但硬盘、网络I/O有一些,参见 https://www.v2ex.com/t/394313 )
加上那天天色已晚,再不回寝室就要被记晚归,于是放弃使用docker搭建。
回归nginx
大概是因为第一次接触网页搭建的时候就是使用的lnmp,对其还是比较有感情熟悉,就还是装回了lnmp。
先通过http装好再说https吧,按着网页提示一步一步操作好,能用了再说https的问题。
安装步骤略。
HTTPS问题
按照惯例,要把80端口的访问请求跳转到443去,只需要把conf文件里80端口对应的server{}里,写成这样就行:
server {
listen 80;
#IPv6监听
listen [::]:80;
server_name example.com;
#301跳转到https去
return 301 https://$server_name$request_uri;
}
然而我不管怎么改这个配置文件,总是重定向过多。
CloudFlare背锅
经过一番搜索,问题在于我给域名套了cdn。
由于这台机子地理和线路限制,裸连的速度并不理想,在idm多线程下载的时候也只有几百kBps,而加上cloudflare的cdn之后,不挂代理,用idm16线程,速度能拉满学校的百兆校园网(能接触到的接入点全被限速百兆了)。
问题就在于,cloudflare给没有ssl证书的站点提供了ssl证书,在他那里就有一层跳转。默认为flexible模式。

由于我在lnmp中已经用Let’s Encrypt签发了证书,就可以使用Full(strict)模式,改过去就好了。

其实在overview里面有个deployment模式的开关,打开就可以暂时跳过cf的cdn,看网页的原始状态。
transmission
apt install transmission-daemon
安装好后,开启进程,让它生成配置文件,之后关掉进程再改。
systemctl start transmission-daemon systemctl stop transmission-daemon vim /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
注意改下面这几行
"rpc-authentication-required": true, "rpc-enabled": true, "rpc-password": "远程连接用的密码", "rpc-username": "远程连接用的用户名", "rpc-whitelist-enabled": false
之后再启动transmission-daemon,如果再看这个配置文件的话会发现password变为hash之后的了,所以这个密码要记好。
在PC/Android上就可以下载transmission remote GUI来管理服务器的bt下载了
映射目录
在nextcloud的data文件夹下,有创建的用户对应的目录。
/home/wwwroot/example.com/data/USER/file/
而transmission的下载目录在
/var/lib/transmission/transmission-daemon/downloads/
使用ln -s创建软连接,在nextcloud里面不起作用。
于是使用挂载操作,在此之前先创建一个文件夹作为挂载点,在此使用“DIR”示例
cd /home/wwwroot/example.com/data/USER/file/ mkdir DIR chown www:www mount --bind /var/lib/transmission/transmission-daemon/downloads/ /home/wwwroot/example.com/data/USER/file/DIR
其中USER为之前安装nc的时候设置的用户名,mount操作时必须使用绝对路径。
如果mount出问题了,umount掉那个目录
如果umount提示target is busy
,需要执行fuser -kv /DIR/path
观察回显信息,看有没有报错
自动化任务
那肯定是得一次整好,后面用就行了呗
–2020年2月1日更新–
不需要用此方法更新目录内容,只需在nextcloud中使用“External Storage”应用。
下方部分内容已弃用
更新目录信息(弃用)
nextcloud的目录信息不是实时的,而是存在SQL数据库里的。需要执行一条命令来让其更新目录文件信息
sudo -u www php /home/wwwroot/example.com/occ files:scan --path="/USER/files/"
没有的话就可以添加到crontab里去了。

挂载外部目录(2020/2/1 Update)
在应用市场里搜索“External Storage”应用,之后在设置里添加外部存储目录。
其中这个目录还是得挂之前mount到 /wwwroot/网站目录 下面的那个地方,不然nextcloud没有权限访问网站目录之外的地方(为了安全)。我觉得可以把只读勾上。

rc.local
首先是开机自动挂载目录,修改/etc/rc.local 文件
Ubuntu 18.04似乎把这个文件删掉了,需要自己创建一个
参照 https://www.jianshu.com/p/2b9e33ad714d
一定要在exit 0
之前加入mount命令
crontab (弃用)
改定时任务
注意到occ的config文件是www所有,故要给www用户配cron表
crontab -u www -e
我设置的是每5min进行一次目录更新,在最后一行加入:
*/5 * * * * php /home/wwwroot/example.com/occ files:scan --path="/USER/files/transmission" --quiet >> /dev/null
桌面端
其实这步可有可无,我本以为桌面版的nextcloud是一个类似百度网盘的文件浏览器,结果直接就是个同步器…
于是就直接给nas上建了个文件夹来专门同步。
而且速度还不行,17个小时才同步了60GiB的样子。不知道他是用的什么方式在同步。去github看了下,用的csync。
峰值速度能达到寝室宽带极限,30Mbps的样子。
其实要下什么的话,直接在网页端用idm拖回来就好了。
使用效果很一般,甚至经常同步失败。
后记
其实要想同步nas和远程的vps,由于 OpenMediaVault集成了rsync,应该会比较方便。如果用笔记本作为中介进行同步的话未免有点浪费资源。
以前都没有完整配置过rsync,等寒假再说吧。(咕咕咕)



update (2020/2/9)
放一张挂了外部存储之后的panel

没有评论
你先离开吧:)