Centos7 Directadmin与nextcloud混合部署-折腾笔记

博主前两天在阿里云买了一台云服务器,在服务器上部署了Directadmin,但是我还想部署一个nextcloud做自己的云盘。

原来的想法是直接在Directadmin上部署nextcloud,但是有很多莫名其妙的问题暂时无法解决,所以就采用了Docker部署的方式。

操作系统:centos7 x64

directadmin:nginx+php+mysql

一、准备

1.1 参考资料

参考资料


http://www.jianshu.com/p/a2798b1ac8a4

1.2 思路

1、使用Docker安装nextcloud

2、使用directadmin的nginx做反向代理,代理到nextcloud的端口

3、使用ssl,通过https访问

4、ssl部署在directadmin上,由nginx完成ssl加密+反向代理

1.3大致实现思路

1、部署nextcloud

2、申请ssl整数,并应用

3、设置nextcloud默认通过https访问

二、部署nextcloud

2.1 安装Docker

curl -sSL https://get.docker.com/ | sh

Tips:博主是按照官网步骤安装的

2.2 安装compose

curl -L https://github.com/docker/compose/releases/download/1.10.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

 

2.3 配置Docker镜像源

采用国内源,加快下载速度。编辑/etc/docker/daemon.json并加入以下内容:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2.4部署NextCloud

2.4.1 为nextcloud创建独立容器网络

docker network create nextcloud

2.4.2 创建WEB服务器

本次使用轻量化的Caddy(想用nginx也可以)。

新建一个容器文件夹,新建Caddyfile文件。

mkdir -p /root/tools/nextcloud
cd /root/tools/nextcloud
vim Caddyfile

文件内容如下:

example.com {
  proxy / 233.233.233.233:2333 {
      proxy_header Host {host}
      proxy_header X-Real-IP {remote}
      proxy_header X-Forwarded-Proto {scheme}
  }
  log /var/log/caddy.log
  gzip
}

2.4.3 创建nextcloud配置文件

vim docker-compose.yml

内容如下:

version: '2'
services:
  app:
    container_name: cloud_app
    image: nextcloud
    volumes:
      - ./data/cloud/config:/var/www/html/config
      - ./data/cloud/data:/var/www/html/data
      - ./data/cloud/apps:/var/www/html/apps
    ports:
      - "2333:80"
    restart: always
  cron:
    container_name: cloud_cron
    image: nextcloud
    volumes_from:
      - app
    user: www-data
    entrypoint: |
      bash -c 'bash -s <<EOF
      trap "break;exit" SIGHUP SIGINT SIGTERM
      while /bin/true; do
        /usr/local/bin/php /var/www/html/cron.php
        sleep 900
      done
      EOF'
    restart: always
  web:
    container_name: cloud_web
    image: abiosoft/caddy
    volumes:
      - ./Caddyfile:/etc/Caddyfile
      - ~/.caddy:/root/.caddy
    ports:
      - 8081:8081
      - 8443:8443
    restart: always
networks:
  default:
    external:
      name: nextcloud

保存以后,一个命令即可启动:

docker-compose up -d

开始部署nextcloud…

2.4.4 登录并初始化

上面完成之后,已经可以登录nextcloud了。

登录链接:http://127.0.0.1:2333

博主使用了sqlite,没有用mysql等三方数据库。

 

2.5 使用Directadmin反向代理

directadmin切换到管理级后,点击【自定义httpd配置】,点击相应的域名后,在第一个输入框输入:

    location / {
        proxy_redirect off;
        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_pass http://127.0.0.1:2333;
    }

保存后,反向代理已经可以正常作用。

2.6 设置nextcloud

nextclou安装好之后,其数据位于/root/tools/nextcloud/data/cloud目录下。

修改配置文件/root/tools/nextcloud/data/cloud/config/config.php,加入:

'overwriteprotocol' => 'https',

使得所有连接均转向https.

到此结束!

 

分享到:更多 ()