跳至主要内容

利用Nextcloud搭建私有云盘

最近有同学的手机丢了,幸运的是手机最后有找回来。

大部分人手机里有非常多的照片,手机丢了可以买新的,照片丢了就再也找不回来了。因此数据的备份显得非常重要。


因为家里有NAS做raid 1,并且定期做异地备份,数据的安全性还是蛮高的。就有搭建私有云盘的想法。

上网搜索了一下,发现nextcloud是用得比较多的。此次就选用nextcloud来搭建我们的私有云盘。


首先在家里的服务器上新建一台vm,这里选用debian 11,装系统的过程就不讲了。

安装完成后,利用nfs挂载nas的存储

新建挂载目录

mkdir /mnt/nextcloud

编辑/etc/fstab,加入如下一行

192.168.x.x:/volume1/NextCloud /mnt/nextcloud nfs defaults 0 0

这里ip地址和nas存储路径用自己的配置替代

然后sudo mount -a测试一下


接下来开始安装依赖件

安装mariadb

sudo apt update

sudo apt -y install mariadb-server mariadb-client

配置数据库

sudo mysql_secure_installation 

sudo mysql -u root -p

输入配置的密码以登录


配置nextcloud的数据库和用户

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '密码';

CREATE DATABASE nextcloud;

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';

FLUSH PRIVILEGES;

QUIT


安装php和apache2

sudo apt -y install php php-{cli,xml,zip,curl,gd,cgi,mysql,mbstring}

sudo apt -y install apache2 libapache2-mod-php

修改php配置

sudo vim /etc/php/*/apache2/php.ini

date.timezone = Asia/Shanghai

memory_limit = 1000M

upload_max_filesize = 2000M

post_max_size = 1000M

max_execution_time = 300


下载nextcloud

wget https://download.nextcloud.com/server/releases/latest.zip

unzip latest.zip

sudo mv nextcloud /var/www/html/

sudo chown -R www-data:www-data /var/www/html/nextcloud

sudo sudo chmod -R 755 /var/www/html/nextcloud


重启apache2服务

sudo systemctl restart apache2

输入http://ip/nextcloud 就可以打开nextcloud页面了

第一次登陆需要配置用户名和密码,并输入数据库和数据库账号,然后点击安装按钮就完成了。


现在为nextcloud添加外部存储

在个人设置中点击应用,在已禁用的应用中,将External storage support启用。



然后在管理页面找到外部存储页面,新增nfs存储挂载的目录。


为提高网盘安全性,套用反向代理,并启用ssl。
在nginx中新增一个/etc/nginx/conf.d/nextcloud.conf
server {
        listen          9084 ssl;
        server_name     你的域名;
        ssl_certificate         /root/fullchain.pem;
        ssl_certificate_key     /root/privkey.pem;
        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;

        location ~ {
                client_max_body_size 1000M;
                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-Proto $scheme;
                proxy_set_header X-Forwarded-Port $server_port;
                proxy_set_header X-Forwarded-Host $server_name;
                add_header Front-End-Https on;
                proxy_set_header X-Nginx-Proxy true;
                proxy_pass http://nextcloud的ip地址;
                proxy_buffering off;
                proxy_max_temp_file_size 0;
                proxy_redirect off;
    }
}

这里端口使用9084,因为家用宽带80和443等端口无法使用。
然后在nextcloud中增加对代理的支持
编辑/var/www/html/nextcloud/config/config.php
新增如下内容:
'trusted_domains' =>
  array (
    0 => 'nginx服务的ip',
  ),

'trusted_domains' =>
   [
    '你的域名',
    'nginx服务的ip',
    '127.0.0.1'
  ],
  'trusted_proxies'   => ['127.0.0.1:9084'],
  'overwritehost'     => '你的域名:9084',
  'overwriteprotocol' => 'https',
  'overwritewebroot'  => '/',
  'htaccess.RewriteBase' => '/',
  'overwrite.cli.url' => 'https://你的域名:9084',

因为我这里nginx是另外单独的服务,上面还做了其他服务的反向代理,因此要把ip填进去,如果是nextcloud本机使用nginx做反向代理,那么只需要填127.0.0.1就可以了。

完成后,将nginx服务重启,把9084端口转发到nginx服务的ip就可以了。

然后用https://你的域名:9084 就可以在任何地方访问nextcloud了。

评论

此博客中的热门博文

PVE安装Windows 11虚拟机 step by step

Win 11已经发布有两周多了,因为引进了tpm机制,只支持较新的设备安装,对于虚拟机的支持不高。 目前各个虚拟化平台针对win 11已经有对应的方案,今天来介绍一下PVE 7.0安装win 11虚拟机。 提前下载win11和virtio win 11的镜像。 win 11镜像下载这里就不说了,很多途径。 virtio的镜像在这里下载https://github.com/virtio-win/virtio-win-pkg-scripts,下载最新的virtio win iso。 新建和配置虚拟机 点击新建虚拟机 给虚拟机起名,然后下一步。 选择加载win 11镜像文件,系统类型选择windows。 系统配置这里: bios选择OVMF(UEFI);机器选择q35;勾选TPM,并选择TPM版本为v2.0;然后存储的位置选择同一个存储。 硬盘设备选择VirtIO,磁盘大小选择64G,32G其实也可以,但是微软要求最低64G。 设置CPU和内存,微软要求最低2核8G,这里我们给4核8G,因为是单节点,所以CPU类型勾选host。 配置网卡信息后继续。 这里不要勾选自动创建后启动,确认配置信息后点击完成。 到新建的虚拟机这里,新建光驱。 选择下载的驱动镜像,点击创建。 完成后点击启动。 启动后进入windows安装界面,这里照一般操作进行。 到安装类型这里选择 自定义安装。 到选择安装位置这里会无法显示硬盘信息,因为缺少驱动,点击加载驱动程序。 然后点击浏览。 选择驱动镜像下的amd64下的w10文件夹,点击确定。 加载驱动后磁盘控制器能够显示,点击下一页。 选中显示的磁盘后点击下一步进行安装。 文件复制完后会重启几次。 安装完成后会启动第一次配置界面。 输入账户信息后进行系统配置。 配置完成后进入桌面。 在设备管理器中有一些设备未能正确识别。 进入驱动镜像,运行virtio-win-ge-x64安装文件安装驱动。 安装完成后,所有设备都能正确识别。 至此win11虚拟机安装完成。

搭建cups服务,并提供云打印服务。

Google的云打印服务已经在2020年底结束,所以不得不寻找新的解决方案。 之前家里使用一台windows虚拟机内置的打印服务,使用windows单单作为一台打印服务器实在是太过浪费。 因为家里有ubuntu的虚拟机跑plex服务,计划在ubuntu上运行打印服务。 linux上最为成熟的打印服务就是cups了,然后在软路由上搭建open vpn,即可实现任何地方打印文档。 一.cups服务安装。     首先安装cups服务     sudo apt install cups     修改配置文件     sudo  cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak     sudo nano  /etc/cups/cupsd.conf     新增监听地址     Listen 192.168.1.x:631      BrowseAllow all      BrowseAddress All      <Location />            Order allow,deny            Allow all      </Location>      <Location /admin>          Order allow,deny          Allow all     </Location>      <Location /admin/conf>          Order allow,deny          Allow all     </Location>     然后用浏览器访问https://192.168.1.x:631/admin     添加打印机     add printer     选择local printer里本地的打印机 然后点击下一步     勾选share this printer然后点击下一步     在model里寻找打印机型号,如果没有需要安装打印机     我的打印机是epson入门型号l310,需要手动安装。     去epson的网站https://download.ebz.epson.net/dsc/search/01/search/searchModule寻

安装部署JumpServer

 最近遭遇一起云主机因安全防护措施不到位被安装挖矿程序的情况。 为提高云主机的安全性和考虑搭建一台跳板机来访问云主机以提高安全性。 目前主流且还在维护的JumpServer是比较好的解决方案,搭建一台JumpServer做测试。 这里使用ubuntu 20.04 lts作为OS。 安装操作系统后先修改软件仓库为国内163源。 sudo cp /etc/apt/sources.list    /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list 注释掉原来的内容 添加网易源 #网易源 deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse 执行更新 sudo apt-get update && sud