[折腾日常]NextCloud性能和安全设置优化

1. 解决上传文件时 nginx 413 Request Entity Too Large 错误

产生原因:上传文件的大小超出了 Nginx 允许的最大值,如果没有配置的话,默认是1M;
解决方式:修改Nginx配置

vi /usr/local/nginx/conf/nginx.conf
client_max_body_size 500m

测试是否修改成功:

/usr/local/nginx/sbin/nginx -t

重新加载:

/usr/local/nginx/sbin/nginx -s reload

2. 您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者你可以将数据目录移动到 Web 服务器文档根目录。

第一种解决办法:将数据存储目录移动到网站根目录,注意不是运行目录,移动后还要修改nextcloud的配置文件config.php;

'datadirectory' => '/www/wwwroot/test.wxlcloud.com/data',

第二种方法:修改nextcloud绑定的网站配置文件,添加nextcloud常用目录禁止访问即可,网站配置文件加入下列代码:

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
      deny all;
  }

3. PHP的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”)函数测试返回了一个空值。 请参照安装说明文档 ↗中的PHP配置说明查阅您服务器的PHP配置信息,特别是在使用php-fpm时。

修改PHP的配置文件…/php/72/etc/php-fpm.conf,在其尾部添加:

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

4. PHP 内存限制低于建议值 512MB。

修改php.ini文件

memory_limit = 1024M

5. 您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档。您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。

修改nextcloud绑定的网站配置文件,添加下列代码:

#caldav和carddav
rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;

6. 内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

官方文档:https://docs.nextcloud.com/server/17/admin_manual/configuration_server/caching_configuration.html
修改nextcloud的配置文件config.php(注意要安装对应的php扩展 memcached,redis):


'memcache.local' => '\OC\Memcache\Memcached'
或者:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),
或者:
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\APCu',
'redis' => array (
    'host' => '127.0.0.1',
    'port' => 6379,
),

7. PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置(需要安装php的opcache扩展):

opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

8. 一些文件没有通过完整性检查。了解如何解决该问题请查看我们的 文档。(无效文件列表… / 重新扫描…)Nextcloud配置过程中提示Invalid hash - .user.ini的解决办法:

解决方案是删除 .htaccess 和 .user.ini 两个文件后重新上传Nextcloud包内的这两个文件,并确保 .htaccess 和 .user.ini 的权限是777(可读可写可执行),并且所有者是www。

9. NextCloud需要安装的其他php扩展:

fileinfo,imagemagick

上一篇:简单三步使用 Docker 搭建一个多端同步网盘!你学废了吗?


下一篇:nextcloud 如何取消用户默认文件