ASK-107-Nextcloud

创建无状态nextcloud:24.0.2-apache

2Core4GB,80端口

环境变量点击:从镜像元数据中获取

容器路径/var/www/html映射到nas

创建nc的svc,服务端口8080对应容器端口80,虚拟集群ip

-------------------------------

创建mysql secret

apiVersion: v1
data:
  MYSQL_PASSWORD:
  MYSQL_ROOT_PASSWORD:
  MYSQL_USER:
kind: Secret
metadata:
  name: secrets-db
  namespace: nextc
type: Opaque

创建有状态mysql:8.0.4

1Core2GB,开端口3306

环境变量添加三个secrets

容器路径/var/lib/mysql映射到nas

创建mysql的svc,3306对3306,虚拟集群ip

创建alb ingress路由,TLS

进入mysql终端,

mysql -uroot -p
create database nextcloud;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123321';
flush privileges;

 登录域名,输入mysql数据,地址为mysql的svc ip:3306

成功

因为我们的 SSL 相关配置是配置到容器之外的, 并且 https 链接在容器外就已卸载, 所以需要额外的配置来告知容器我们使用了 https 链接.

进入我们映射的目录中我们可以看到不少容器生成的文件.

首先我们打开 config.php 文件, 找到并调整如下字段:

# 将 http 修改为 https
'overwrite.cli.url' => 'https://***',
# 新增这一行, 强制使用 https 协议
'overwriteprotocol' => 'https',

同时我们需要告知容器外部的反向代理是可以信任的, 在 config.php 新增如下信息:

'trusted_proxies' =>
array (
  # 这是 Kubernetes 的 IP 段, 可能可以更精确的配置……
  0 => '10.0.0.0/8',
),

在 Nextcloud 的安全检查时汇报了关于 HSTS 的问题, 编辑 .htaccess 文件, 在 <IfModule mod_env.c> 里, 添加以下两行:

Header onsuccess unset Strict-Transport-Security
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

修复提示未正确解析 carddav 和 caldav 的错误, 编辑 .htaccess 文件, 将原有的

RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]

调整为:

RewriteRule ^\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]

接着重启一下容器, Nextcloud 就完成了所有的部署了.

执行 OCC 文件的方法

偶尔会发现需要使用执行 OCC 命令, 但是镜像中并没有 sudo 命令, 所以

sudo -u www-data php occ ...

这样的命令是无法执行的, 这里只能先用 su 命令切换用户后执行

su -s /bin/bash www-data

然后再使用 occ 命令处理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值