在家庭网络没有固定 IP 或者家庭网络不能被外网访问的情况下,使用树莓派搭建 Nextcloud 私有云系统服务,需要借助于有外网 IP 的服务器,使用frp等工具进行内网穿透,整套系统的访问过程示意如下:
如果你直接访问到了这个页面,可参考下《树莓派使用 frp 实现内网穿透搭建 Nextcloud 私有云的准备工作》了解采用此方案搭建 Nextcloud 私有云服务所要进行的准备工作,以便快速上手,少走弯路。
这里主要介绍使用 frp 进行内网穿透和 Nextcloud 私有云的安装。
搭建内网穿透服务
- 参考Github-frp安装配置好 frp 内网穿透服务;
我的树莓派端的配置文件关键信息如下:
[common]
server_addr = [your-public-server-ip]
server_port = 7000
privilege_token = [your-privilege_token]
[ssh]
type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
[web]
privilege_mode = true type = http local_port = 80 custom_domains = [your-domain]
我的公网服务器端的配置文件关键信息如下:
[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = [your-dashboard_user]
dashboard_pwd = [your-dashboard_pwd]
privilege_mode = true
privilege_token = [your-privilege_token]
privilege_allow_ports = 4000-50000
log_file = [path]/frps.log
log_level = info
log_max_days = 3
- 公网服务器端配置 Nginx,转发外网访问请求到 frp server 服务;
server {
listen 80;
server_name [your-domain];
location / {
proxy_pass http://127.0.0.1:8080; # frp server 端的 vhost_http_port 配置的端口
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_hide_header X-Powered-By;
}
}
- 配置好后,通过域名 [your-domain] 访问树莓派 Nginx 的默认网站测试配置是否正确
安装 Nextcloud
- 解压下载好的 Nextcloud 程序文件到安装准备工作中创建的 web 目录:
[path]/web/nextcloud
- 设置目录权限
$ sudo chown -R nobody:nobody [path]/web/nextcloud
- 参考Nextcloud Nginx Configuration配置 Nginx,推荐使用 socket 方式连接 php-fpm
upstream php-handler {
# server 127.0.0.1:9000;
server unix:/var/run/php71-fpm.sock;
}
- 现在可以通过域名 [your-domain] 访问到 Nextcloud 服务了,通过 Nextcloud 的安装向导设置用户名、密码、数据存储路径和数据库信息后,Nextcloud 私有云就搭建好了。如果是严格按照《树莓派结合 frp、Nextcloud 搭建私有云之安装前的准备》进行的前期准备工作,那么:
- 数据存储路径:
[path]/disk
; - 数据库:MariaDB
- 数据库用户名: nobody
- 数据库密码:[your-password]
- 数据存储路径:
- 系统界面。