当前位置: 首页 > news >正文

【亚马逊云】基于Amazon EC2实例部署 NextCloud 云网盘并使用 Docker-compose 搭建 ONLYOFFICE 企业在线办公应用软件

文章目录

    • 1. 部署EC2实例
    • 2. 安装 Docker 服务
    • 3. 安装docker-compose
    • 4. 创建Docker-compose文件
    • 5. 创建nginx.conf文件
    • 6. 运行docker-compose命令开始部署
    • 7. 访问ONLYOFFICE插件
    • 8. 访问NextCloud云盘
    • 9. 下载并启用ONLYOFFICE插件
    • 10. 上传文件测试
    • 11. 所遇问题
    • 12. 参考链接

1. 部署EC2实例

[root@ecs-stwts nextcloud]# hostnamectl Static hostname: ecs-stwtsPretty hostname: ecs-sTWtSIcon name: computer-vmChassis: vmMachine ID: bc974da2acac413f8e7ac7ddf7891424Boot ID: fb58f5174f674d5da11502f4380988a9Virtualization: kvmOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-957.12.2.el7.x86_64Architecture: x86-64
[root@ecs-stwts nextcloud]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs                   tmpfs     3.8G     0  3.8G   0% /dev/shm
tmpfs                   tmpfs     3.8G   17M  3.8G   1% /run
tmpfs                   tmpfs     3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        47G   13G   35G  27% /
/dev/vda1               xfs      1014M  219M  796M  22% /boot
overlay                 overlay    47G   13G   35G  27% /var/lib/docker/overlay2/a3ea784feaae33cd04f6bdea0af15ab2270d05767b5fededde1afc0a460b27ab/merged
overlay                 overlay    47G   13G   35G  27% /var/lib/docker/overlay2/65cd58479d46993b807e92bcb45969f932b05ac8d26eb90e1e39ea4e445f38d7/merged
overlay                 overlay    47G   13G   35G  27% /var/lib/docker/overlay2/de1095dd24a9f3d90007e26cde66a169f6265deb452e2a35cf9dd7de4afb0ede/merged
overlay                 overlay    47G   13G   35G  27% /var/lib/docker/overlay2/5669acb1a761a678860edb12498a49d2b793d2cb293e42b2c774792ec22db59b/merged
tmpfs                   tmpfs     764M     0  764M   0% /run/user/0
[root@ecs-stwts nextcloud]# free -gtotal        used        free      shared  buff/cache   available
Mem:              7           1           0           0           5           5
Swap:             0           0           0

2. 安装 Docker 服务

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

image-20241031110733193

image-20241031110751799

image-20241031110829626

[root@ecs-stwts nextcloud]# docker version
Client: Docker Engine - CommunityVersion:           26.1.4API version:       1.45Go version:        go1.21.11Git commit:        5650f9bBuilt:             Wed Jun  5 11:32:04 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          26.1.4API version:      1.45 (minimum version 1.24)Go version:       go1.21.11Git commit:       de5c9cfBuilt:            Wed Jun  5 11:31:02 2024OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.33GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957runc:Version:          1.1.12GitCommit:        v1.1.12-0-g51d5e94docker-init:Version:          0.19.0GitCommit:        de40ad0

image-20241031110926979

image-20241031110958107

3. 安装docker-compose

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
[root@ecs-stwts nextcloud]# docker-compose version
Docker Compose version v2.29.1

4. 创建Docker-compose文件

[root@ecs-stwts nextcloud]# cat docker-compose.yml
services:app:container_name: app-serverimage: nextcloud:fpmstdin_open: truetty: truerestart: alwaysexpose:- '80'- '9000'networks:- onlyofficevolumes:- app_data:/var/www/htmlonlyoffice-document-server:container_name: onlyoffice-document-serverimage: onlyoffice/documentserver:lateststdin_open: truetty: truerestart: alwaysnetworks:- onlyofficeexpose:- '80'- '443'volumes:- document_data:/var/www/onlyoffice/Data- document_log:/var/log/onlyofficeports:- 2280:80     #此处是onlyoffice的端口:左侧的端口可以自定义- 4423:443environment:- JWT_ENABLED=true          #此处:是否打开秘钥认证- JWT_SECRET=xxxxxx     #此处:是onlyoffice的秘钥nginx:container_name: nginx-serverimage: nginxstdin_open: truetty: truerestart: alwaysports:- 2380:80          #此处:nextcloud的端口 左侧的端口可以自定义- 4433:443networks:- onlyofficevolumes:- ./nginx.conf:/etc/nginx/nginx.conf- app_data:/var/www/htmldb:container_name: mariadbimage: mariadbrestart: alwaysvolumes:- mysql_data:/var/lib/mysqlenvironment:- MYSQL_ROOT_PASSWORD=xxxxxx     #此处:初始化数据库信息- MYSQL_PASSWORD=xxxxxx          #此处:初始化数据库信息- MYSQL_DATABASE=nextcloud         #此处:初始化数据库信息- MYSQL_USER=nextcloud             #此处:初始化数据库信息networks:- onlyoffice
networks:onlyoffice:driver: 'bridge'
volumes:document_data:document_log:app_data:mysql_data:

5. 创建nginx.conf文件

[root@ecs-stwts nextcloud]# cat nginx.conf 
user  www-data;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {upstream backend {server app-server:9000;}include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;map $http_host $this_host {"" $host;default $http_host;}map $http_x_forwarded_proto $the_scheme {default $http_x_forwarded_proto;"" $scheme;}map $http_x_forwarded_host $the_host {default $http_x_forwarded_host;"" $this_host;}server {listen 80;# Add headers to serve security related headersadd_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";add_header X-Robots-Tag none;add_header X-Download-Options noopen;add_header X-Permitted-Cross-Domain-Policies none;root /var/www/html;client_max_body_size 10G; # 0=unlimited - set max upload sizefastcgi_buffers 64 4K;gzip off;index index.php;error_page 403 /core/templates/403.php;error_page 404 /core/templates/404.php;rewrite ^/.well-known/carddav /remote.php/dav/ permanent;rewrite ^/.well-known/caldav /remote.php/dav/ permanent;location = /robots.txt {allow all;log_not_found off;access_log off;}location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {deny all;}location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {deny all;}location / {rewrite ^/remote/(.*) /remote.php last;rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;try_files $uri $uri/ =404;}location ~* ^/ds-vpath/ {rewrite /ds-vpath/(.*) /$1  break;proxy_pass http://onlyoffice-document-server;proxy_redirect     off;client_max_body_size 100m;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $http_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-Host $the_host/ds-vpath;proxy_set_header X-Forwarded-Proto $the_scheme;}location ~ \.php(?:$|/) {fastcgi_split_path_info ^(.+\.php)(/.+)$;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param HTTPS off;fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twicefastcgi_pass backend;fastcgi_intercept_errors on;}# Adding the cache control header for js and css files# Make sure it is BELOW the location ~ \.php(?:$|/) { blocklocation ~* \.(?:css|js)$ {add_header Cache-Control "public, max-age=7200";# Add headers to serve security related headersadd_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";add_header X-Content-Type-Options nosniff;add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Robots-Tag none;add_header X-Download-Options noopen;add_header X-Permitted-Cross-Domain-Policies none;# Optional: Don't log access to assetsaccess_log off;}# Optional: Don't log access to other assetslocation ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {access_log off;}}
}

6. 运行docker-compose命令开始部署

docker-compose up -d

image-20241031111329648

7. 访问ONLYOFFICE插件

成功以后需要打开自己相应的端口防火墙就可以web端访问了

http://ip:2280  #打开自己VPS的端口加ip进入web页面

image-20241031111624467

8. 访问NextCloud云盘

http://ip:2380  #打开自己VPS的端口加ip进入web页面

image-20240807204821496

image-20241031111856220

image-20240807204908942

image-20241031111950542

9. 下载并启用ONLYOFFICE插件

image-20241031112059029

image-20241031112201498

然后选择管理应用-ONLYOFFICE -填写如图信息即可。

image-20241031112347796

image-20241031112447696

10. 上传文件测试

image-20241031112624143

11. 所遇问题

通过不被信任的域名访问

请联系您的管理员。如果您就是管理员,请参照 config.sample.php 中的示例编辑 config/config.php 中的“trusted_domains”设置。

配置此项的详细内容请查阅 文档。

image-20241223172434247

[root@awsvstecs ~]# find / -name config.php
/var/lib/docker/volumes/nextcloud_app_data/_data/config/config.php

image-20241223165217984

12. 参考链接

1️⃣(つェ⊂)咦,又回来了! (ywsj365.com)

2️⃣cker搭建nextcloud网盘-配合onlyoffice使用-实现在线编辑office-协同办公

3️⃣国内服务器如何解决docker无法拉取镜像的问题 (ywsj365.com)

4️⃣nextcloud/nextcloud-onlyoffice-mysql-domain-ssl.md at master · chendong12/nextcloud (github.com)

5️⃣docker-onlyoffice-nextcloud-mysql/nginx.conf at master · tvollscw/docker-onlyoffice-nextcloud-mysql (github.com)

6️⃣Docker实战:Docker安装nginx并配置SSL_docker nginx 配置ssl-CSDN博客

相关文章:

【亚马逊云】基于Amazon EC2实例部署 NextCloud 云网盘并使用 Docker-compose 搭建 ONLYOFFICE 企业在线办公应用软件

文章目录 1. 部署EC2实例2. 安装 Docker 服务3. 安装docker-compose4. 创建Docker-compose文件5. 创建nginx.conf文件6. 运行docker-compose命令开始部署7. 访问ONLYOFFICE插件8. 访问NextCloud云盘9. 下载并启用ONLYOFFICE插件10. 上传文件测试11. 所遇问题12. 参考链接 1. 部…...

java Redisson 实现限流每秒/分钟/小时限制N个

1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…...

【漫话机器学习系列】029.累积分布函数(Cumulative Distribution Function)

累积分布函数&#xff08;Cumulative Distribution Function, CDF&#xff09; 累积分布函数&#xff08;CDF&#xff09;是概率论和统计学中的一个基本概念&#xff0c;用于描述随机变量取值的累积概率分布情况。它在理论研究和实际应用中广泛使用。 定义 给定随机变量 X&am…...

设计模式之访问者模式:一楼千面 各有玄机

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 一、访问者模式概述 \quad 江湖中有一个传说&#xff1a;在遥远的东方&#xff0c;有一座神秘的玉楼。每当武林中人来访&#xff0c;楼中的各个房…...

AI 编程的世界:用Cursor编写评分项目

AI 编程的世界&#xff1a;用Cursor编写评分项目 今天是2024年的最后一天&#xff0c;祝大家在新的一年&#xff0c;健康开心快乐&#xff01; 岁末之际&#xff0c;星辰为伴&#xff0c;灯火长明&#xff0c;我终于在 2024 年的最后一天成功上线了 AI 编程项目。回首这一年&am…...

Cesium教程(二十三):Cesium实现下雨场景

文章目录 实现效果代码引入js文件创建容器创建视图定义下雨场景完整代码下载实现效果 代码 在 Cesium 中利用PostProcessStageLibrary实现下雪场景,你可以按照以下步骤进行: 创建一个 PostProcessStage:首先,你需要创建一个PostProcessStage对象,它将用于定义下雪效果的渲…...

SpringCloudAlibaba技术栈-Higress

1、什么是Higress? 云原生网关&#xff0c;干啥的&#xff1f;用通俗易懂的话来说&#xff0c;微服务架构下Higress 就像是一个智能的“交通警察”&#xff0c;它站在你的网络世界里&#xff0c;负责指挥和调度所有进出的“车辆”&#xff08;也就是数据流量&#xff09;。它的…...

uniapp 微信小程序开发使用高德地图、腾讯地图

一、高德地图 1.注册高德地图开放平台账号 &#xff08;1&#xff09;创建应用 这个key 第3步骤&#xff0c;配置到项目中locationGps.js 2.下载高德地图微信小程序插件 &#xff08;1&#xff09;下载地址 高德地图API | 微信小程序插件 &#xff08;2&#xff09;引入项目…...

Springboot:后端接收数组形式参数

1、接收端写法 PermissionAnnotation(permissionName "",isCheckToken true)PostMapping("/batchDeleteByIds")public ReturnBean webPageSelf( NotNull(message "请选择要删除的单据&#xff01;") Long[] ids) {for (Long string : ids) {l…...

Postman[2] 入门——界面介绍

可参考官方 文档 Postman 导航 | Postman 官方帮助文档中文版Postman 拥有各种工具、视图和控件&#xff0c;帮助你管理 API 项目。本指南是对 Postman 主要界面区域的高级概述&#xff1a;https://postman.xiniushu.com/docs/getting-started/navigating-postman 1. Header&a…...

1月第四讲:Java Web学生自习管理系统

一、项目背景与需求分析 随着网络技术的不断发展和学校规模的扩大&#xff0c;学生自习管理系统的需求日益增加。传统的自习管理方式存在效率低下、资源浪费等问题&#xff0c;因此&#xff0c;开发一个智能化的学生自习管理系统显得尤为重要。该系统旨在提高自习室的利用率和…...

【Redis】Redis 典型应用 - 缓存 (cache)

目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…...

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…...

ROS2+OpenCV综合应用--10. AprilTag标签码追踪

1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上&#xff0c;增加了小车摄像头云台运动的功能&#xff0c;摄像头会保持标签码在视觉中间而运动&#xff0c;根据这一特性&#xff0c;从而实现标签码追踪功能。 2. 启动 2.1 程序启动前的准备 本次apriltag标签码使…...

python Celery 是一个基于分布式消息传递的异步任务队列系统

Celery 是一个基于分布式消息传递的异步任务队列系统&#xff0c;主要用于处理耗时任务、定时任务和周期性任务。它能够将任务分配到多个工作节点&#xff08;Worker&#xff09;上执行&#xff0c;从而提高应用程序的性能和可扩展性。Celery 是 Python 生态中最流行的任务队列…...

嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别

引言&#xff1a;在现代嵌入式硬件设计中&#xff0c;开关元件作为电路中的重要组成部分&#xff0c;起着至关重要的作用。三种主要的开关元件——IGBT&#xff08;绝缘栅双极型晶体管&#xff09;、MOSFET&#xff08;金属氧化物半导体场效应晶体管&#xff09;和三极管&#…...

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日&#xff0c;2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者&#xff0c;共同探讨云计算产业发展方向和未来机遇&#xff0c;展示云计算标准化工作重要成果。 会上&#xff0c;云建设与应用领航计划&#xff08;2024&#xff09;建云用…...

好用的随机生成图片的网站

官网&#xff1a; Lorem Picsum 获取自定义大小的随机图像 https://picsum.photos/200/300 获取正方形图像 https://picsum.photos/200 获取特定类型的图像 通过添加到 /id/{image} url 的开头来获取特定图像。 https://picsum.photos/id/237/200/300 获取静态随机图像…...

添加 env 配置,解决import路径问题

添加 env 配置&#xff0c;解决import路径问题 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387 “version”: “0.2.0”, “configurations”: [ {"name&q…...

Go work stealing 机制

Go语言的Work Stealing&#xff08;工作窃取&#xff09;机制是一种用于调度Goroutines&#xff08;协程&#xff09;的策略&#xff0c;其核心目的是最大化CPU使用率&#xff0c;减少任务调度的开销&#xff0c;并提高并发性能和吞吐量。以下是Go Work Stealing机制的详细解释…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...