Docker 安装 Nextcloud 网盘服务与 Nginx 反向代理及常见问题解决

Docker 安装 Nextcloud 网盘服务与 Nginx 反向代理及常见问题解决

Nextcloud 是一个开源、自我托管的文件共享和通信平台,允许您访问和同步您的文件、联系人、日历,并在所有设备上进行通信。

简单来说,Nextcloud 是一个以文件为核心的协作服务平台。


基础配置:

  • 一台服务器(1Core 1GB+)5GB+ 存储
  • 域名和对应 SSL 证书
  • Docker

一键安装脚本

bash <(curl -sSL linuxmirrors.cn/docker.sh)

配置 Docker 镜像源加速

编辑 /etc/docker/daemon.json(vi 编辑器:按 i 进入插入模式,输入后按 ESC 进入命令模式,输入 :wq 保存并退出,:q 仅退出)

vi /etc/docker/daemon.json

编辑镜像源内容:

{
    "registry-mirrors": [
        "https://docker.xuanyuan.me",
        "docker.1panel.live",
        "https://mirror.ccs.tencentyun.com"
    ]
}

# 拉取镜像
docker pull nginx:latest

# 创建目录
mkdir -p /home/nginx/{conf,log,html}

# 创建容器,替换 8080 为你自己想要开放的端口(防火墙放行 TCP+UDP)
docker run \
  -p 8080:80 \
  --name nginx \
  -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
  -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
  -v /home/nginx/log:/var/log/nginx \
  -v /home/nginx/html:/usr/share/nginx/html \
  -d nginx:latest

RHEL / CentOS

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

cd /usr/local/src
wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

sudo vi /lib/systemd/system/nginx.service

编辑 nginx.service

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl enable nginx.service

Ubuntu / Debian

sudo apt update
sudo apt install nginx -y

# 自启动服务
sudo systemctl start nginx
sudo systemctl enable nginx

# 防火墙放行 HTTP/HTTPS
sudo ufw allow 'Nginx Full'
sudo ufw enable

使用 Nextcloud AIO 镜像安装,该镜像内置了 Nginx / PHP / SQLite。

# 创建数据目录
mkdir -p /data/nextcloud/{data,config,apps}

# 启动 Nextcloud 容器,修改端口和管理员账号密码
docker run -d \
  --name nextcloud \
  --restart always \
  -p 8081:80 \
  -v /data/nextcloud/data:/var/www/html \
  -v /data/nextcloud/config:/var/www/html/config \
  -v /data/nextcloud/apps:/var/www/html/custom_apps \
  -e NEXTCLOUD_ADMIN_USER="admin" \
  -e NEXTCLOUD_ADMIN_PASSWORD="your_strong_password" \
  nextcloud:latest

配置 Nginx 反向代理

Nginx 配置文件目录 /etc/nginx/sites-available/nextcloud.conf(若使用 Openresty,则为 /etc/openresty/conf.d/nextcloud.conf

vi /etc/nginx/sites-available/nextcloud.conf

配置反向代理:

server {
    listen 443 ssl;
    server_name 你的域名;

    # SSL 证书路径
    ssl_certificate /你的证书路径/fullchain.pem;
    ssl_certificate_key /你的证书路径/privkey.pem;

    # 反向代理到 Nextcloud
    location / {
        proxy_pass http://localhost:8081;  # Nextcloud 容器
        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_set_header X-Forwarded-Proto $scheme;

        # Nextcloud 头部
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
    }
}

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}

配置 SSL 和端口

将 SSL 证书放在配置文件中指定的位置,并在服务器防火墙中放开 80 端口。


安装数据库 MySQL/MariaDB/PostgreSQL(可选)

Docker 安装:

# MySQL
docker pull mysql:latest
docker run -itd --name MYSQL -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456admin mysql

# MariaDB
docker pull mariadb:latest
docker run --name MARIADB -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456admin mariadb

# PostgreSQL
docker pull postgres:latest
# PostgreSQL 数据卷
docker volume create postgre-data
# PostgreSQL 容器
docker run -id --name=POSTGRESQL -v postgre-data:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_PASSWORD=123456admin -e LANG=C.UTF-8 postgres

进入网站域名,如果 HTTPS 和反向代理服务配置成功,会出现安装向导页面。

安装向导界面

输入管理员账号密码,输入数据库信息,即可安装成功。

安装完成图示


进入账号管理:

账号管理

左下角选择“账号管理设置”:

账号管理设置

在应用中搜索 “Registration” 安装即可。

在文件左下角选择“文件设置”。

具体可以参考 Nextcloud API

使用 Typecho 插件(自用)实现注册时同步 Nextcloud。

版权声明

本站所有文章除特别注明外,均由 小狐 创作,采用 CC BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 狐言碎语

推荐阅读

评论