37 使用nextcloud搭建私有云服务 - xiaoxin01/Blog GitHub Wiki
文本介绍如何使用nextcloud搭建私有云服务
使用docker-compose启动
配置文件如下:
version: '3'
services:
db:
image: mariadb
restart: always
volumes:
- /data/project/mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
# 持久化存储数据
- /data/project/nextcloud/html:/var/www/html
# 配置文件
# - ./appconfig/config.php:/var/www/html/config/config.php
restart: always
此时已经可以通过 ip:8080来访问 nextcloud 了。
如果需要自定义host,则需要更改 config.php 文件的trusted_domains字段:
'trusted_domains' => array (
0 => 'xxx.xxx.xxx.xxx:8080',
1 => 'example.com',
),
另外也可以通过NGINX来做Web Proxy:
web:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
links:
- app
volumes:
- /data/project/nginx/log:/var/log/nginx
- ./conf.d:/etc/nginx/conf.d
在conf.d下面添加配置文件:
server {
listen 80;
server_name host;
#charset koi8-r;
access_log /var/log/nginx/access.host.log main;
location / {
proxy_pass http://app;
# 必须,否则Nextcloud无法获取真实的host而阻止访问
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}