nextcloud私有云

Published on with 0 views and 0 comments

背景

最近windows自带的oneDrive登录不上,原来还可以在家写的文档,到公司同步后可以直接用或者接着写。现在登录不了就有点麻烦,于是想找个替代方案。
搜了一圈,最后确定了 nextcloud。(因为有vps,有域名,所以决定自建和云盘服务器,不过受限于vps的硬盘大小,可用容量只有不到20G,日常同步些文件也够了,需要存大量数据的,还是得百度云)

安装步骤

确定方案

nextcloud的官网搜了一下,客户端适配 Windows,MacOS, Linux, 不过移动端好像只能从各家的应用商店下载(Android就是Google Play)。客户端暂且不提。服务端也有多种安装方案,选了个对我来说最简单(查方法的时候根据别人的反馈看拿起来也确实是最简单)的方案,docker

docker 部署 nextCloud

https://nextcloud.com/install/#instructions-server

https://hub.docker.com/_/nextcloud/

之前部署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一样,都支持自动检测同步,现在编辑的文件保存后就会自动上传。


标题:nextcloud私有云
作者:mnizht
地址:http://zhuht.xyz/articles/2020/05/07/1588837696548.html