侧边栏壁纸
博主头像
STONE

行动起来,活在当下

  • 累计撰写 70 篇文章
  • 累计创建 67 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

Docker-compose安装nextcloud并通过NginxProxyManager进行反向代理

STONE
2022-03-17 / 0 评论 / 0 点赞 / 935 阅读 / 0 字
温馨提示:
本文最后更新于2024-06-02,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Docker-compose安装nextcloud并通过NginxProxyManager进行反向代理


底层系统Ubuntu

1.安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

2.Docker Compose安装

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases

运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装其他版本的 Compose,请替换 v2.2.3

将可执行权限应用于二进制文件:

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

创建软链:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

docker-compose --version
cker-compose version 1.24.1, build 4667896b

如果出现网络问题,直接用浏览器下载可执行文件放到/usr/local/bin目录下即可

3.使用Docker-compose配置nextcloud

mkdir docker
cd docker
mkdir nextcloud db
cd  nextcloud
touch docker-compose.yml
vim docker-compose.yml

Docker-compose.yml文件配置:

---
version: "2"
services:
    db:
    image: mysql
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /home/stone/docker/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      
  nextcloud:
    image: linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
    volumes:
      - /home/stone/nextcloud:/var/www/html
    networks:
      - mynet
    ports:
      - 8080:80
    restart: unless-stopped

networks:
  mynet:
    external:
      name: mynet
docker-compose up -d		# 运行

4.通过NginxProxyManager进行反向代理

如何安装NginxProxyManager请参考:https://www.shiyunhao.cn/2022/022457995.html

location / {

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-wiz-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Proto "https"; #强制开启https
proxy_set_header X-NginX-Proxy true;

#--解决转https代理后wss协议无法连接的问题
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
#proxy_set_header Connection "keep-alive";

proxy_set_header Host $http_host;
proxy_pass http://192.168.3.220:80; #使用docker的内部地址,需要在docker配置工具中查看
proxy_ssl_session_reuse off;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;		#重定向off=>改成http:// https://
}

配置nextcloud配置文件config.php

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'instanceid' => 'oc8a3em8xmzl',
  'passwordsalt' => 'qC9I1uGMSFSJ5nAkwWVXeSsNZDB4sl',
  'secret' => 'PexdhN7Bj2W1FexIUzmk8QEEPPZWRt7vI3eI9H0e9WHLceWO',
  'trusted_domains' =>
  array (
    0 => '192.168.3.220',
    1 => 'nextcloud.specialstone.top:99',
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '23.0.2.1',
  'overwriteprotocol' => 'https', # 添加这项配置
  'overwrite.cli.url' => '192.168.3.220',
  'dbname' => 'nextcloud',
  'dbhost' => '192.168.3.1:3306',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'oc_stone4',
  'dbpassword' => '9jEmmxNWkCzZNxVhLtlPh6ArTYyxsY',
  'installed' => true,
);

添加信任域名: 1 => 'nextcloud.specialstone.top:99','overwriteprotocol' => 'https',

0

评论区