Web Server Performance optimieren ( GZIP / PHP / CloudFlare )

Folgen

Hinweis:
In diesem Beitrag geht es um das Optimieren der Performance. Falls Sie herausfinden möchten warum Ihre Webseite viel Ressourcen verbraucht, lesen Sie unseren anderen FAQ-Beitrag.
Link zum Artikel: Was tun wenn meine Seite zu viele Ressourcen verbraucht

 

Problem

Ihr Account erreicht regelmässig das Ressourcenlimit oder Ihre Seite ist einfach nur Langsam? Mit ein paar wenigen Einstellungen lässt sich die der Account so optimieren, dass sich die Performance Ihrer Webseite stark erhöht. Folgend finden Sie mehrere Ansätze zur optimierung:

 

GZIP-Komprimierung

Als erstes sollten Sie die die GZIP-Komprimierung aktivieren. Das heisst, dass alle Daten die der Server sendet zuerst komprimiert werden. Somit wird die versendete Datenmenge stark reduziert und die Webseite lässt sich schneller laden.

Um die Komprimierung zu aktivieren, loggen Sie sich im cPanel ein und öffnen Sie das Menü " Optimize Website". Dort wählen Sie die Option "Compress all content". Anschliessend muss die Einstellung mit dem Button "Update Settings" noch gespeichert werden und schon wird Ihre Seite komprimiert ausgeliefert:

 

PHP-Optimierung

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln. Anschliessend, falls nicht bereits umgestellt, muss eine PHP-Version definiert werden.

Anschliessend sehen Sie eine Übersicht der aktivierten PHP-Erweiterungen.  Speichern Sie die Einstellung via dem Button "Set as current".

PHP-Chaching

Wenn ein User Ihre webseite aufruft, wird jedes mal aus den PHP-Dateien ein HTML-Dokument erstellt. Wenn nun zur gleichen Zeit mehrere Benutzer auf der Webseite sind, kann das eine hohe Last verursachen, da der Server das HTML-Dokument jedes mal neu erstellt. Mit dem Aktivieren der Erweiterung "opcache" kann PHP die HTML-Dokumente zwischenspeichern, sodass die Last auf dem Server stark minimiert wird.

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln. Anschliessend den Haken bei "opcache" setzen und mit dem Button "Speichern" die gemachten Änderungen übernehmen:

Maximale Ausführzeit

Normalerweise werde PHP-Scripte in weniger als einer Sekunde ausgeführt. Falls etwas schiefläuft und das Script weiterläuft soll es anstatt nach 30 Sekunden bereits nach 10 beendet werden, da jedes einen Prozess benötigt. Damit nun das Prozesslimit nicht bzw. seltener erreicht wird, kann man folgende Einstellungen vornehmen:

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln und oben rechts auf "Switch To PHP Settings" klicken. Anschliessend änden Sie den Wert beim Eintrag "max_execution_time" auf 10. Somit wird ein PHP-Script nach 10s beendet:

 

CloudFlare CDN

 

Hier eine kleiner Auszug von unserer Webseite über die Vorteile von CloudFlare:

Wie kann CloudFlare die Geschwindigkeit meiner Website erhöhen?

Ihr Traffic wird über das nächstgelegene Datacenter gelenkt. Dort werden die statischen Inhalte Ihrer Website für kurze Zeit (in der Regel weniger als zwei Stunden) gespeichert, bevor wir überprüfen, ob diese geändert wurden. Dank der Verschiebung der statischen Website-Inhalte näher zum Besucher, wird die Verfügbarkeit Ihrer Website markant erhöht.

Mit dem intelligenten Speichersystem benötigen Sie auch weniger Bandbreite, wodurch Ihre Applikationen schneller und effizienter werden. Im Durchschnitt sehen CloudFlare-Nutzer eine Reduktion der Bandbreite um 60%. Gesamthaft reduziert CloudFlare die Ladezeit Ihrer Website um die Hälfte.

Wie kann CloudFlare die Sicherheit meiner Website erhöhen?

CloudFlare bietet vielfältige Möglichkeiten um Ihre Website zu schützen z.B. vor DDoS Attacken, Hacker oder Spaming (Details siehe www.cloudflare.com/features-security).

Und das Beste ist – je mehr Nutzer CloudFlare verwenden, desto cleverer wird das Sicherheitssystem. Die Analyse des Traffics von hunderten Millionen Nutzern, welche immer ins Sicherheitssystem übernommen werden, ermöglicht, dass zwischen gutem und schlechtem Traffic unterschieden werden kann.
Eckdaten von CloudFlare
Verwaltung von über 28 Billionen Seitenaufrufen
Fast 25% der Internetnutzer gehen über deren Netzwerk
14 Datacenter sind in Betrieb

CloudFlare aktivieren:

Um CloudFlare zu aktivieren, klicken Sie im cPanel auf den Menüpunkt CloudFlare und anschliessend  auf das Logo. Es kann bis zu 24 Stunden dauern bis die Einstellungen übernommen sind:

 

Apache .htaccess Konfiguration

Der Apache-Server kann so konfiguriert werden, dass er dem Browser mitteilt statische Dateien (z.B. Bilder) auf dem Computer zu speichern und nicht jedes mal erneut herunterzuladen. Um diese Einstellungen zu aktivieren, fügen Sie folgende Konfiguration zur .htaccess Datei im Webseitenverzeichnis hinzu:

 

# ##############################################################################
# # WEB PERFORMANCE #
# ##############################################################################

# ------------------------------------------------------------------------------
# | Compression |
# ------------------------------------------------------------------------------

<IfModule mod_deflate.c>

# Force compression for mangled headers.
# https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html

<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Map certain file types to the specified encoding type in order to
# make Apache serve them with the appropriate 'Content-Encoding' HTTP
# response header (this will NOT make Apache compress them!).

# If the following file types wouldn't be served without the appropriate
# 'Content-Enable' HTTP response header, client applications (e.g.:
# browsers) wouldn't know that they first need to uncompress the response,
# and thus, wouldn't be able to understand the content.

# http://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding

<IfModule mod_mime.c>
AddEncoding gzip svgz
</IfModule>

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Compress all output labeled with one of the following media types.

# IMPORTANT: For Apache versions below 2.3.7 you don't need to enable
# 'mod_filter' and can remove the '<IfModule mod_filter.c>' & '</IfModule>'
# lines as 'AddOutputFilterByType' is still in the core directives.

<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font-ttf" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/opentype" \
"image/svg+xml" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vtt" \
"text/x-component" \
"text/xml"
</IfModule>

</IfModule>

# ------------------------------------------------------------------------------
# | ETags |
# ------------------------------------------------------------------------------

# Remove 'ETags' as resources are sent with far-future expires headers.
# https://developer.yahoo.com/performance/rules.html#etags

# 'FileETag None' doesn't work in all cases.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>

FileETag None

# ------------------------------------------------------------------------------
# | Expires headers |
# ------------------------------------------------------------------------------

# Serve resources with far-future expires headers.

# IMPORTANT: If you don't control versioning with filename-based cache
# busting, consider lowering the cache times to something like one week.

<IfModule mod_expires.c>

ExpiresActive on
ExpiresDefault "access plus 1 month"

# CSS
ExpiresByType text/css "access plus 1 year"

# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/schema+json "access plus 0 seconds"
ExpiresByType application/vnd.geo+json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"

# Favicon (cannot be renamed!) and cursor images
ExpiresByType image/x-icon "access plus 1 week"

# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"

# HTML
ExpiresByType text/html "access plus 0 seconds"

# JavaScript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"

# Manifest files
ExpiresByType application/manifest+json "access plus 1 year"
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"

# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"

# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rdf+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"

# Web fonts
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"

</IfModule>

 

Haben Sie Fragen? Anfrage einreichen

Kommentare

Powered by Zendesk