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

2018-10-26  本文已影响2166人  824bb1c71eb9

这两天在宝塔面板下折腾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

上一篇下一篇

猜你喜欢

热点阅读