📖
zhaoqiang
  • Home
  • Python
    • Python Base
      • Grammar
      • Issue
    • Web DEV
      • Html
      • WebFrame
        • Flask
        • Django
      • WebTemplate
    • Web Crawler
  • Linux
    • Navieboom
    • Telegram Bot
      • RSSBot
      • TwitterBot
    • LetsEncrypt
      • ACME Create
      • ACME Install
    • NextCloud
      • NextCloud创建
      • NextCloud性能优化
    • Google
      • Google Drive
        • 离线下载
      • Chromium
    • Synology
      • Docker
        • 清理Docker占用的磁盘空间
      • Youtube-dl
      • 群晖—-外部访问DDNS教程(第一部分)
      • 群晖—-外部访问DDNS教程(第二部分)
      • SpeedTest - Install
      • BestTrace - Install
      • Rclone - Install
      • IPKG - Install
      • LEDE - Install
    • OpenWrt
      • Compile
        • Lean-4.14
        • Lean-4.9
    • LEDE
    • Linux Base
      • Command
      • Cron
  • DynamicsAX
    • Functions
      • Document Services
        • Auto Generate XML From AX
        • Load XML Files On Server
      • Webservice
      • DB Connect
      • DirectSQL
      • Email Alert
      • Auto Items
      • Auto BOM
      • Auto Order
      • Auto Invoice
      • Auto Packing
    • Data Import
      • Initial Static Data
      • initial Dynamic Data
        • Open SO
        • Open PO
        • Opening Balance
    • Access Right
    • Process
    • Instance
      • DYNAMICS 365 FOR OPERATION INSTANCE
  • Other Skills
    • Markdown
    • GIT
      • Command
    • Office365
Powered by GitBook
On this page

Was this helpful?

  1. Linux
  2. NextCloud

NextCloud性能优化

PreviousNextCloud创建NextGoogle

Last updated 5 years ago

Was this helpful?

昨天,介绍了有关在面板下安装Nxtcloud15的教程,但是安装完成后,在后台的概览里显示安全设置及警告的提示信息。 如图: 下面,我就总结下如何处理安全设置及告警提示信息。

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

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

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

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

从宝塔文件管理,打开/www/server/php/72/etc/php-fpm.conf,在其尾部添加一行

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

保存并重启PHP即可解决该问题。

3、通过 HTTP 访问网站不安全。强烈建议您将服务器设置成 HTTPS 协议,请查阅 安全贴士↗。

如果以前申请过SSL,可以将crt和key用记事本打开,分别黏贴到下图中。

如果没有,也可注册宝塔会员,免费申请,申请完点击部署即可。

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

这两个警告可以一起解决,出现该提示一般是因为这两个路径的伪静态设置有问题,导致无法正常访问。 解决方法就是添加两行重定向配置

  1. rewrite /.well-known/carddav /remote.php/dav permanent;
  2. rewrite /.well-known/caldav /remote.php/dav permanent;

5、未找到 PHP 的 "fileinfo" 模块。强烈推荐启用该模块,从而获得更好的 MIME 类型探测结果。

因为php环境默认是没有安装fileinfo这个扩展模块的,所以需要手动去宝塔PHP管理选项中安装fileinfo扩展。

6、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。

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

  1.   'memcache.local' => '\\OC\\Memcache\\APCu',
  2.   'memcache.distributed' => '\\OC\\Memcache\\Memcached',
  3.   'memcached_servers' => 
  4.   array (
  5.     0 => 
  6.     array (
  7.       0 => 'localhost',
  8.       1 => 11211,
  9.     ),
  10.  );

7、PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。

  1.     opcache.enable=1
  2.     opcache.enable_cli=1
  3.     opcache.interned_strings_buffer=8
  4.     opcache.max_accelerated_files=10000
  5.     opcache.memory_consumption=128
  6.     opcache.save_comments=1
  7.     opcache.revalidate_freq=1

8、该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。

imagick

安装php的imagemagick扩展模块

  • filecache.mtime

  • filecache.storage_mtime

通过SSH登录到服务器的命令模式下,并cd到站点目录下,输入

  1. php occ db:add-missing-indices

意思是需要使用www用户权限来修改,再次输入

  1. sudo -u www php occ db:add-missing-indices

提示如下图信息,并输入 y

10、HTTP的请求头 “Referrer-Policy” 未设置为 “no-referrer”, “no-referrer-when-downgrade”, “strict-origin” or “strict-origin-when-cross-origin”. 这会导致信息泄露。

需要设置一个Referrer-Policy请求头来提高安全性。

  1. add_header Referrer-Policy "no-referrer";

4.The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.

解决方法还是修改nextcloud绑定的网站配置文件,添加一行header信息

add_header Strict-Transport-Security "max-age=63072000;";

保存即可生效

  1. server
  2. {
  3.     #基础配置,这些可以照搬宝塔的配置
  4.     listen 80;
  5.     listen 443 ssl http2;
  6.     server_name www.chyiyang.net;
  7.     index index.php index.html index.htm default.php default.htm default.html;
  8.     root /www/wwwroot/www_chyiyang_net;
  9.     ssl_certificate    /etc/letsencrypt/live/www.chyiyang.net/fullchain.pem;
  10.     ssl_certificate_key    /etc/letsencrypt/live/www.chyiyang.net/privkey.pem;
  11.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  12.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  13.     ssl_prefer_server_ciphers on;
  14.     ssl_session_cache shared:SSL:10m;
  15.     ssl_session_timeout 10m;
  16.     error_page 497 https://$host$request_uri;
  17.     #nextcloud包含了403和404的错误页面
  18.     error_page 403 /core/templates/403.php;
  19.     error_page 404 /core/templates/404.php;
  20.     #HSTS、缓存设置
  21.     add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
  22.     large_client_header_buffers 4 16k;
  23.     client_max_body_size 10G; 
  24.     fastcgi_buffers 64 4K;
  25.     gzip off;
  26.     #宝塔默认是include调用PHP相关配置,这里稍稍修改了一下,注意php版本
  27.     #加入了front_controller_active这项参数以删除页面URL中的index.php
  28.     location ~ [^/]\.php(/|$)
  29.     {
  30.         try_files $uri =404;
  31.         fastcgi_pass  unix:/tmp/php-cgi-72.sock;
  32.         fastcgi_index index.php;
  33.         include fastcgi.conf;
  34. 	    include pathinfo.conf;
  35. 	    fastcgi_param front_controller_active true;
  36.     }
  37.     #一键申请SSL证书验证目录相关设置
  38.     location ~ \.well-known{
  39.         allow all;
  40.     }
  41.     #nextcloud一些关键目录的权限设置
  42.     location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
  43.         deny all;
  44.     }
  45.     #静态资源重定向1
  46.     location ~* \/core\/(?:js\/oc\.js|preview\.png).*$ {
  47.         rewrite ^ /index.php last;
  48.     }
  49.     #webdav重定向
  50.     location / {
  51.         rewrite ^ /index.php$uri;
  52.         rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  53.         rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  54.         rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
  55.         rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
  56.     #静态资源重定向2,支持使用acme脚本在申请证书时对域名的验证
  57.      if ($uri !~* (?:\.(?:css|js|svg|gif|png|html|ttf|woff)$|^\/(?:remote|public|cron|status|ocs\/v1|ocs\/v2)\.php|^\/\.well-known\/acme-challenge\/.*$)){
  58.          rewrite ^ /index.php last;
  59.         }
  60.     }
  61.     #静态资源重定向3
  62.     location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
  63.         try_files $uri /index.php$uri$is_args$args;
  64.         access_log off;
  65.     }
  66.     location ~ ^/(?:updater|ocs-provider)(?:$|/) {
  67.         try_files $uri/ =404;
  68.         index index.php;
  69.     }
  70.     #对静态资源添加header
  71.     location ~ \.(?:css|js|woff|svg|gif)$ {
  72.         try_files $uri /index.php$uri$is_args$args;
  73.         add_header Cache-Control "public, max-age=15778463";
  74.         add_header X-Content-Type-Options nosniff;
  75.         add_header X-XSS-Protection "1; mode=block";
  76.         add_header X-Robots-Tag none;
  77.         add_header X-Download-Options noopen;
  78.         add_header X-Permitted-Cross-Domain-Policies none;
  79. 		add_header Referrer-Policy "no-referrer";
  80.         access_log off;
  81.     }
  82.     #caldav和#carddav
  83.     rewrite /.well-known/carddav /remote.php/dav permanent;
  84.     rewrite /.well-known/caldav /remote.php/dav permanent;
  85.     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
  86.     {
  87.         expires      30d;
  88.         access_log off; 
  89.     }
  90.     #access_log  /www/wwwlogs/www.chyiyang.net.log;
  91. }

安装php的Memcached和apcu模块(注意是memcached,非memcache),我选的是Memcached和apcu 编译安装完毕之后,从宝塔面板打开/www/wwwroot/你的域名/config/config.php,手动给nextcloud的配置文件中添加一行设置,指定使用APCu作为缓存

安装php的opcache扩展模块 并改为下图的参数

9、数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过行手动执行 "occ db:convert-filecache-bigint" 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。查阅相关文档以获得更多详情。

提示如下信息

下面是我的用得Nginx配置

好了,就写到这了,希望对大家有所帮助,文笔有限,望谅解~~本文地址: 本文标题:Nextcloud15的安全及设置警告优化处理方法 版权声明:本站所有文章除特别声明外,均采用 许可协议。请尊重他人的劳动成果,转载请写明出处!

命令
Nextcloud
https://www.chyiyang.cn/66.html
署名-非商业性使用-禁止演绎 4.0 国际
宝塔
配置
宝塔面板安装Nextcloud15简单教程之前,我用centos7.4 + nginx + php7.2 + MariaDB的环境安装了Nextcloud14,之后版本大更新,想升级到Nextcloud15,结果不知道按错......阅读全文
php
宝塔面板安装Nextcloud15简单教程