[转]{改}Ubuntu使用Snap快速安装NextCloud网盘,并配置域名及SSL证书

原文链接:https://www.moerats.com/archives/429/ ,有更改


说明:关于NextCloud安装方法之前说了两种了,常规的lnmp环境搭建和使用Docker安装,参考:一款不错的个人私有云:NextCloud安装教程使用Docker快速安装NextCloud个人私有云盘,现在再说另一种安装方法,使用Snap快速安装,由于Snap包自带NextCloud,所以安装快速简单,是这几种方法中最简单的一个,也很实用,有兴趣的可以尝试下。

Snap是什么?

Snap的安装包扩展名是.snap,类似于一个容器,完全独立于系统,它包含一个应用程序需要用到的所有文件和库(snap包包含一个私有的root文件系统,里面包含了依赖的软件包)。它们会被安装到单独的目录,各个应用程序之间相互隔离,互不影响。而且安装快捷、创建简单、运行安全,易管理。目前支持的主流发行版有UbuntuDebian等。

Snap的用法
这里只简单说下,初步了解下就行了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#查看snap版本信息
snap --version
#找出所有snap应用
snap find
#安装应用
snap install 包名
#重启应用
snap restart 应用名
#升级应用
snap refresh 应用名
#查看安装的应用
snap list
#卸载应用
snap remove 应用名

安装

由于Ubuntu 16.04系统自带Snap,为了方便,可以直接使用该系统。

Snap包自带NextCloud,所以我们可以直接安装。

1
2
3
4
#更新系统
apt-get update -y
#安装NextCloud
snap install nextcloud

这时候就可以打开http://your_ip进入登录页面了,如果想用域名登录并配置SSL证书的话,先别登录,请直接看后面。

配置域名

将域名解析至VPSIP就可以使用域名登录了,然后再添加Let’s encrypt SSL证书并使用https访问。

添加SSL证书
使用命令:

1
nextcloud.enable-https lets-encrypt

根据要求输入你的邮箱,域名即可!

然后就可以打开域名并设置账号和密码登录了。

更多使用命令和方法可以直接查看Github地址→传送门,基本上可以解决你的大部分疑惑。

Nginx反向代理

通过反向代理时,不需使用nextcloud.enable-https lets-encrypt申请域名,不过会稍微麻烦一点。

第一步,更改nextcloud的默认端口

1
2
sudo snap set nextcloud ports.http=185
sudo snap set nextcloud ports.https=186 #这一步可选,因为我们不会使用nextcloud的https端口

第二步,添加nextcloud的trusted_domains

1
sudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=your.fancy.domain

接着重启nextcloud

1
sudo snap restart nextcloud

然后在Nginx配置文件中设置反向代理,添加如下内容(这是已有证书时的内容)
```text
server {
listen 443 ssl;

server_name your.fancy.domain;

# 获取到的两个证书文件
ssl_certificate /etc/nginx/certs/h1msk.cc/cert.pem;
ssl_certificate_key /etc/nginx/certs/h1msk.cc/privkey.pem;

# ssl设置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

location / {
    proxy_pass http://localhost:10080;
    proxy_set_header Host $http_host;
    proxy_buffers 256 4k;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout 30;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 301 1h;
    proxy_cache_valid any 1m;
}

}