Performance
HTTP Caching
HTTP caching for assets (e.g. images, stylesheets or Javascript components) must be defined in the configuration of the web server.
If you are using the configuration for Apache2 or NGINX described in the Server Setup section, the recommended configuration is already in place and no further adjustment is necessary.
If not, all files of the following directories that are delivered directly by the web server should be delivered with a Cache HTTP Header.
- /static
- /uploads
- /themes
- /assets
The expiration time can be set very high, because HumHub automatically changes the URL in case of an update.
Application Caching
HumHub supports different caching systems which can be configured at: Administration -> Settings -> Advanced -> Caching
.
In addition to those listed caching systems, you can use any Yii2 compatible caching driver.
Configuration file examples:
Redis Cache Example:
[
'components' => [
'cache' => [
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
]
],
],
]
Memcached Configuration Example:
[
'components' => [
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'server1',
'port' => 11211,
'weight' => 60,
],
[
'host' => 'server2',
'port' => 11211,
'weight' => 40,
],
],
],
],
]
X-Sendfile
X-Sendfile is a feature that allows us to pass file download requests directly by the webserver. This improves the application performance.
If this was configured incorrectly, file downloads won't work, please test the file upload and download after configuring X-Sendfile.
Installation Administration -> Settings -> Files -> Enable X-Sendfile Support.
Apache Config Example:
XSendFile On
XSendFilePath /path/to/humhub/uploads
More Information:
- Apache: X-Sendfile
- Lighttpd v1.4: X-LIGHTTPD-send-file
- Lighttpd v1.5: X-Sendfile
- Nginx: X-Accel-Redirect
- Cherokee: X-Sendfile and X-Accel-Redirect
Requires package libapache2-mod-xsendfile