打算在云服务器上搭建个人网盘,使用Docker
安装nextcloud。参考
基本配置
- 服务器:腾讯云服务器
- 操作系统:
Ubuntu 18.04
Docker:19.03.11
Docker Compose:1.26.0
docker-compose
使用docker-compose
方式配置nextcloud
以及相应的数据库mariadb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| $ cat docker-compose.yml version: '2'
volumes: nextcloud: db:
services: db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=<填写密码> - MYSQL_PASSWORD=<填写密码> - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud
app: image: nextcloud ports: -13151:80 links: - db volumes: - nextcloud:/var/www/html restart: always
|
- 数据保存在卷
db
和nextcloud
- 主机端口号为
13151
启动容器命令即可:
启动
第一次登录NextCloud
时需要注册管理员用户以及设置数据库。在上一小节中设置了mariadb
数据库,注意:配置数据库参数时需要将localhost
改为db
Nginx + SSL
使用Nginx
进行反向代理以及SSL
认证。在阿里云设置域名和证书,配置docker-compose.yml
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $ cat docker-compose.yml version: "3" services: nginx: container_name: nginx image: nginx ports: - "9300:9300" volumes: - "~/software/nginx/cert:/etc/nginx/cert" < ----------- 证书放在这里 - "~/software/nginx/www:/opt/www" - "~/software/nginx/logs:/var/log/nginx" - "~/software/nginx/conf.d:/etc/nginx/conf.d" - "~/software/nginx/nginx.conf:/etc/nginx/nginx.conf" restart: always
|
关于配置Nginx Docker
参考docker安装nginx
NextCloud
的配置文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $ cat nextcloud.conf server { listen <设置对外端口> ssl; server_name <设置域名>;
ssl_certificate cert/nextcloud.pem; ssl_certificate_key cert/nextcloud.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
location / { proxy_set_header X-Rea $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://xxx.xxx.xxx.xxx:13151; <------- 设置局域网地址 proxy_set_header X-Forwarded-Proto $scheme; } }
|
启动nginx
即可
通过不被信任的域名访问
使用新设置的域名登录,遇到如下问题:
请联系您的管理员。如果您就是管理员,请参照 config.sample.php 中的示例编辑 config/config.php 中的 "trusted_domains" 设置。
配置此项的详细内容请查阅 文档。
需要在NextCloud
所在容器上进行配置,进入NextCloud
所在容器
1
| $ docker exec -it xxx bash
|
其配置文件为/var/www/html/config/config.php
修改
1 2 3 4 5 6 7 8 9 10 11 12
| 'trusted_domains' => array ( 0 => 'xxx.xxx.xxx.xxx:xxx', 1 => 'xxx.xxx.xxx:xxx', <------------ 新增设置的域名地址 ), 'datadirectory' => '/var/www/html/data', 'dbtype' => 'mysql', 'version' => '19.0.2.2', 'overwrite.cli.url' => 'http://xxx.xxx.xxx.xxx', 'overwriteprotocol' => 'https', <----------------- 同时新增这一条配置 。。。 。。。
|
重新启动NextCloud
后即可登录
相关阅读