前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nextcloud性能调优

nextcloud性能调优

作者头像
羽翰尘
修改2019-11-26 16:25:40
8.7K1
修改2019-11-26 16:25:40
举报
文章被收录于专栏:技术向

本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/nextcloud_speed_up/

1. 定时任务

将定时任务从ajax换到cron

输入以下命令在宿主机上增加cron任务:

代码语言:txt
复制
crontab -u www-data -e

然后在出现的编辑框中复制粘贴下列命令

代码语言:txt
复制
*/15 * * * * docker exec --user www-data nextcloud_nextcloud_1 php cron.php

列出cron任务:

代码语言:txt
复制
crontab -u www-data -l

你可以直接在宿主机运行后面的命令,

代码语言:txt
复制
docker exec --user www-data nextcloud_nextcloud_1 php /var/www/html/cron.php

还可以查看cron执行记录:

代码语言:txt
复制
tail -f /var/log/cron.log

参考:

官方推荐

给出了几点建议

2. 使用nginx

默认的nextcloud是Apache web, 我们将其换为nginx,通过搭配nextcloud-fpm和nginx两个docker完成。

实测用nginx可以解决页面卡死的问题。

参考:

nginx rewrite

3. 开启gzip

查看是否是gzip传输

  • 方法一:浏览器调试界面
  • 方法二:curl1curl localhost/css/icons/icons-vars.css -I -H "Accept-Encoding: gzip, deflate"

webdav的PROPFIND方法不会开启gzip

实测开启gzip传输后页面的加载速度很快,打开页面的感觉也打开大公司高度优化过的页面相同。

参考:

如何查看页面是否开启了gzip压缩

Nginx开启Gzip压缩大幅提高页面加载速度

gzip module doesn’t handle all certain HTTP verbs/statuses

4. 开启http2

参考:

Nginx配置HTTP2.0

5. 使用缓存

打开/www/wwwroot/你的nextcloud目录/config/config.php,在其尾部添加以下代码

代码语言:txt
复制
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
)

第1行为指定本地缓存为APCu,第2、3行为指定分布式缓存为redis

宝塔面板下nextcloud完美优化配置

启动一个redis container,并加上密码

6. docker-compose中如何动态修改ip?

本优化过程中使用了多个docker,每次启动其ip地址都会变化。所以采用别名的方式来让docker自动确定其ip地址。

我们已经指定了别名,那么在conf文件中不要写ip地址,直接写别名就可以

在docker-compose.yaml中指定php-fpm别名:

代码语言:txt
复制
nextcloud:
    image: nextcloud:16.0-fpm
    links:
      - mysql

比如在nginx.conf中的一行:

代码语言:txt
复制
fastcgi_pass  nextcloud:9000;

另外,nextcloud会自动修改config.php中mysql服务器的地址,只要mysql docker container的别名是mysql

7. 其他参考

程叶博客

nginx语法规则

nginx配置入门

nginx location匹配规则

nginx和php-fpm基础环境的安装和配置

docker完整配置nginx+php+mysql

宝塔面板下nextcloud完美优化配置

rewrite 导致循环的解决方案:添加break

最终nginx的解决方案 官方配置

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 定时任务
  • 2. 使用nginx
  • 3. 开启gzip
  • 4. 开启http2
  • 5. 使用缓存
  • 6. docker-compose中如何动态修改ip?
  • 7. 其他参考
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档