ky818smKy818sm  2023-12-17 13:01 无证的攻城狮 隐藏边栏 |   抢沙发  28 
文章评分 0 次,平均分 0.0

1、设置Nextcloud

关掉弹出窗口(Dashboard)、Talk、Contacts、设置–基本设置–后台任务选Cron

2、redis和APCu

笔者系统docker中已安装redis,APCu也是nextcloud容器自带,配置一下即可:


# 在nextcloud配置redis,编辑config.php
 'memcache.local' => '\\OC\\Memcache\\APCu',
 'memcache.locking' => '\OC\Memcache\Redis',
 'redis' =>
 array (
   'host' => '192.168.2.9',
   'port' => 6379,
 ),

3、计划任务

容器没有Crontab,只好在宿主机执行了,ext文件系统须指定用户。


# 定时每五分钟执行cron.php
*/5 * * * * docker exec --user www-data nextcloud php cron.php
# 文件找不到,手动运行一次后,配置个自动任务,每天自动执行一次
59 23 * * * docker exec --user www-data nextcloud php occ files:scan --all

4、开启视频缩略图

直接命令行解决:


docker exec -it --user root nextcloud  sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
docker exec -it --user root nextcloud  apt-get update
docker exec -it --user root nextcloud  apt-get -y  install ffmpeg
docker exec --user www-data nextcloud  php occ config:system:set enable_previews --value="true" --type=boolean
docker exec --user www-data nextcloud  php occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\Movie"
docker exec --user www-data nextcloud  php occ config:system:set enabledPreviewProviders 1 --value="OC\\Preview\\HEIC"
docker exec --user www-data nextcloud  php occ config:system:set enabledPreviewProviders 2 --value="OC\\Preview\\MarkDown"

5、用openwrt的nginx做https代理

上一回都已经整好了ssl证书,这肯定要用给nextcloud服务配上,加强安全性,并且nextcloud很多app要求https连接。
上一回已经分析了nginx的启动过程,所以这回直接写个server在conf.d下就可以了,新开一个端口号,其实也可以写成域名代理,但是ipv4也没有443给我用,域名代理也没多大用处了。


# 新建一个server
vi /etc/nginx/conf.d/nextcloud

# 内容
server {
        listen 4443 ssl;
        listen [::]:4443 ssl;
        server_name example.com;
        include conf.d/nextcloud.locations;
        ssl_certificate /etc/nginx/conf.d/fullchain.crt;
        ssl_certificate_key /etc/nginx/conf.d/example.com.key;
        ssl_session_cache shared:SSL:32k;
        ssl_session_timeout 64m;
        access_log off; # logd openwrt;
        # location / { ... } # root location for this server.
}

就这样算了,反正也没80口给我跳转 ~
再写个locations:


vi /etc/nginx/conf.d/nextcloud.locations

# 内容

location / {
         # proxy_http_version 1.1;
         proxy_buffering off;
         proxy_set_header Host $http_host;                    
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Nginx-Proxy true;                        
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_pass http://192.168.2.9:8086;        
}       

nextcloud容器中有apache2服务器的,所以openwrt这里的nginx直接传过去参数就得了,不用再折腾什么,反正直升机(apache)和汤姆猫(tomcat)笔者都看不懂。
还得去nextcloud的config.php添加一下信任和协议转换!不然nextcloud以为nginx是半路劫道的(如下图)!
nextcloud运行缓慢的优化

笔者这里是映射到宿主机的,直接开su帐号怼上去就算了!


# 注意路径
vi /path/to/config.php
# 添加这行写在自己的地址下面好了
'overwriteprotocol' => 'https',
# 再在这个数组中添加1,2,3等信任主机
'trusted_domains' =>
  array (
    0 => '192.168.2.9:8086',
    1 => 'localhost:8086',
    2 => 'example.com:4443',
    3 => 'ipv6.example.com:4443',  # 这行可有可无啦,作个示例而已
    ...
),

重启一下docker就ok了! 这回差不多了

本文转载自无证的攻城狮,本文观点不代表旷野小屋_123ppp资源网立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

声明:如果本站发布的内容侵犯到您的权益,请通过邮件【[email protected]】联系本站,我们将及时删除!

发表评论

表情 格式 链接 私密 签到