背景
最近windows自带的oneDrive登录不上,原来还可以在家写的文档,到公司同步后可以直接用或者接着写。现在登录不了就有点麻烦,于是想找个替代方案。
搜了一圈,最后确定了 nextcloud。(因为有vps,有域名,所以决定自建和云盘服务器,不过受限于vps的硬盘大小,可用容量只有不到20G,日常同步些文件也够了,需要存大量数据的,还是得百度云)
安装步骤
确定方案
去 nextcloud
的官网搜了一下,客户端适配 Windows,MacOS, Linux, 不过移动端好像只能从各家的应用商店下载(Android 就是 Google Play)。客户端暂且不提。服务端也有多种安装方案,选了个对我来说最简单(查方法的时候根据别人的反馈看拿起来也确实是最简单)的方案,docker。
docker 部署 nextCloud
https://nextcloud.com/install/#instructions-server
之前部署 solo 的脚本,直接拿过来改了改
docker pull nextcloud
docker stop nextcloud
docker rm nextcloud
docker run -d \
--restart=always \
--name nextcloud -p 8081:80 \
--network=bridge \
-v nextcloud:/var/www/html \
-v apps:/var/www/html/custom_apps \
-v config:/var/www/html/config \
-v data:/var/www/html/data \
-v theme:/var/www/html/themes \
nextcloud
# 8081是主机端口,自己定,注意不要与其它服务冲突,启动成功后可以通知ip:8081访问,验证服务器是否正确
# 80 端口是nextcloud服务器默认的端口,我在这里试过改成别的,都会有问题。。最后还是用了80
# --network=bridge 是为了把nextcloud容器也加到 名为bridge的局域网里,为了能用nginx实现域名跳转
配置数据库
上面的脚本里没有配置数据库,因为我忘了。。。而且官方的例子里也可以不配,我还奇怪没数据库他要怎么存用户数据。访问的时候发现也可以通过 web 端配置,就和工具登录数据库一样,输入账号密码地址就行。
这里报了个错,因为我用的 mysql8,密码的认证方式和之前不一样,所以我又新建了一个用户,使用老的密码认证方式设置了密码。
参考:https://blog.csdn.net/xiaoxinshuaiga/article/details/82798919
nginx 实现二级域名跳转
http://www.zhuht.xyz/ 分给了 solo,想着一个域名只对应一个服务有点亏(自动续费 15 刀,必须得多利用利用。。)。于是想到使用二级域名对应 nextcloud 服务。
在自己的域名管理网站里,设置 DNS,*.zhuht.xyz
可以使 zhuht.xyz
的所有子域指向一个 ip 地址。
然后修改 nginx 的 conf,使它可以根据不同的域名,访问不同的服务。
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /usr/local/nginx/*.conf;
# 监听solo博客域名,
server {
listen 80;
server_name www.zhuht.xyz; # 博客域名
location / {
proxy_pass http://172.17.0.2:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
}
# 监听nextcloud子域名,访问nextcloud服务器
server{
listen 80;
server_name nextcloud.zhuht.xyz;
location / {
proxy_pass http://172.17.0.5:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 4096m;
}
}
}
# proxy_pass http://172.17.0.5:80; 这个是docker容器内启动的nextcloud服务地址
# 可以使用 docker inspect nextcloud 查看容器信息,里面有 IPAddress
# client_max_body_size 4096m; 设置上传文件大小,如果没设置或者太小,上传大文件就会报 413错误
使用感受
把原来 onedrive 里的文件都拷到了 nextcloud 里。使用效果看起来和 onedrive 一样,都支持自动检测同步,现在编辑的文件保存后就会自动上传。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于