美文网首页
宝塔面板下nextcloud完美优化配置

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

作者: 824bb1c71eb9 | 来源:发表于2018-10-26 20:11 被阅读2166次

    这两天在宝塔面板下折腾nextcloud,碰到了许多问题,详见:宝塔面板安装NextCloud一一搞定后台safe及设置警告 ,这里再补充几点

    1、性能优化

    Nextcloud因为各类缘故,原始部署后,任何页面加载时间都过于舒缓。之前的文章有介绍到使用PHP的APCu模块以提拔缓存性能,这里再介绍使用Memcached提升Nextcloud的性能。

    Nextcloud支持多个不一样范例的缓存后端,因而能同时启用本地缓存(APCu)与分布式缓存(Memcached、Redis),官方引荐的结成是APCu+Redis

    分布式缓存挑选Memcached、Redis就中一种启用便可,无需二者都启用

    宝塔面板很便捷的能部署php的Memcached与Redis模块(注意是memcache d,非memcache),这里伏笔VPS以APCu+Memcached为例

    部署终了后,open /www/wwwroot/你的nextcloud目录/config/config.php,在其尾部增加以下代码

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

    'memcache.local' => '\OC\Memcache\APCu',

    'memcache.distributed' => '\OC\Memcache\Memcached',

    'memcached_servers' => array(

    array('localhost', 11211),

    )

    如图,注意分号,save便可

    Redis则需要稍为修正一下配置

    'memcache.local' => '\OC\Memcache\APCu',

    'memcache.distributed' => '\OC\Memcache\Redis',

    'redis' => array(

    'host' => 'localhost',

    'port' => 6379,

    )

    二、Nginx配置

    这一步最为蛋疼,官方给出的Nginx配置示例,有些是能参考的,有些挪到宝塔上去则会有各类奇奇特怪的问题,因而需要针对宝塔修正nextcloud下Nginx的配置。

    经过几天的折腾,这部分到底也搞定的差不多了。分享一下伏笔VPS的Nginx配置,为便捷理解与阅读,伏笔VPS已在配置文件中进入一些注释,能依据情况修正一下便可。

    server

    {

    #根底配置,这些能照搬宝塔的配置

    listen 80;

    listen 443 ssl http2;

    server_name file.bugxia.com;

    index index.php index.html index.htm default.php default.htm default.html;

    root /www/wwwroot/file.bugxia.com;

    ssl_certificate    /etc/letsencrypt/live/file.bugxia.com/fullchain.pem;

    ssl_certificate_key    /etc/letsencrypt/live/file.bugxia.com/privkey.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    ssl_prefer_server_ciphers on;

    ssl_session_cache shared:SSL:10m;

    ssl_session_timeout 10m;

    error_page 497 https://$host$request_uri;

    #nextcloud包罗了403与404的错误页面

    error_page 403 /core/templates/403.php;

    error_page 404 /core/templates/404.php;

    #HSTS、缓存设置

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";

    large_client_header_buffers 4 16k;

    client_max_body_size 10G;

    fastcgi_buffers 64 4K;

    gzip off;

    #宝塔原始是include挪用PHP相关配置,这里约略修正了一下,注意php版本

    #进入了front_controller_active这项参数以清除页面URL中的index.php

    location ~ [^/]\.php(/|$)

    {

    try_files $uri =404;

    fastcgi_pass  unix:/tmp/php-cgi-72.sock;

    fastcgi_index index.php;

    include fastcgi.conf;

    include pathinfo.conf;

    fastcgi_param front_controller_active true;

    }

    #Let's Encrypt 证书续期验证目录

    location /.well-known/acme-challenge { }

    #nextcloud一些重要目录的权限设置

    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {

    deny all;

    }

    #静态资源重定向1

    location ~* \/core\/(?:js\/oc\.js|preview\.png).*$ {

    rewrite ^ /index.php last;

    }

    #webdav重定向

    location / {

    rewrite ^ /index.php$uri;

    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;

    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    #静态资源重定向2,支持使用acmescript在申请证书时对域名的验证

    if ($uri !~* (?:\.(?:css|js|svg|gif|png|html|ttf|woff)$|^\/(?:remote|public|cron|status|ocs\/v1|ocs\/v2)\.php|^\/\.well-known\/acme-challenge\/.*$)){

    rewrite ^ /index.php last;

    }

    }

    #静态资源重定向3

    location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {

    try_files $uri /index.php$uri$is_args$args;

    access_log off;

    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {

    try_files $uri/ =404;

    index index.php;

    }

    #对静态资源增加header

    location ~ \.(?:css|js|woff|svg|gif)$ {

    try_files $uri /index.php$uri$is_args$args;

    add_header Cache-Control "public, max-age=15778463";

    add_header X-Content-Type-Options nosniff;

    add_header X-XSS-Protection "1; mode=block";

    add_header X-Robots-Tag none;

    add_header X-Download-Options noopen;

    add_header X-Permitted-Cross-Domain-Policies none;

    access_log off;

    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$

    {

    expires      30d;

    access_log off;

    }

    #access_log  /www/wwwlogs/file.bugxia.com.log;

    }

    参考:

    https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html

    https://serverfault.com/questions/845696/nginx-rewrite-nextcloud-index-php-in-url

    参考文献: https://vps.fubi.hk/foreshadowingvps/zhishiku/20181026/6283.html

    相关文章

      网友评论

          本文标题:宝塔面板下nextcloud完美优化配置

          本文链接:https://www.haomeiwen.com/subject/wwiltqtx.html