Open Source im professionellen Einsatz

Resource Pools

Danach gilt es, die PHP-FPM-Konfiguration an die Hosting-Umgebung anzupassen. Die PHP-Interpreter, die Nginx zur Verfügung stehen, sind in einem Ressource Pool zusammengefasst. Die Konfiguration dieses Pools bestimmt unter anderem, wie viele Prozesse starten und auf welchem Port PHP-FPM auf Verbindungen wartet. Je nachdem, über welchen Port Nginx mit PHP-FPM kommuniziert, lassen sich auf diese Weise unterschiedliche Pools ansprechen. Das spielt für diesen Artikel aber keine Rolle, da nur ein Pool für den Magento-Shop anzulegen ist. Wer mehrere Websites auf demselben System betreibt, kann diesen aber jeweils einen eigenen Ressource Pool zuweisen.

Debian und Ubuntu speichern die Konfigurationen für Resource Pools im Verzeichnis »/etc/php5/fpm/pool.d/« . PHP-FPM liest bei einem Neustart alle Dateien darin, die auf ».conf« enden, und stellt die entsprechenden Ressourcen bereit. Listing 2 zeigt die Konfiguration für den Pool »magento« .

Listing 2

Ressource-Pool-Konfiguration

01 [magento]
02 ; IP und Port für den Ressource Pool
03 listen = 127.0.0.1:9000
04
05 ; Systembenutzer und Gruppe
06 user = www-data
07 group = www-data
08
09 ; dynamische Prozessanzahl
10 pm = dynamic
11
12 ; maximale Anzahl PHP Interpreter
13 ; und maximale Anzahl gleichzeitiger Requests
14 pm.max_children = 96
15
16 ; initiale Anzahl der PHP Interpreter
17 pm.start_servers = 16
18 pm.min_spare_servers = 10
19 pm.max_spare_servers = 70

Dem Beispielserver für diesen Artikel stehen 16 GByte Arbeitsspeicher zur Verfügung. Die Angabe »pm.max_children« definiert, wie viele PHP-Interpreter maximal laufen dürfen (Zeile 14). Ähnlich wie bei einem Apache-Webserver, der mit Prefork-MPM arbeitet, ist dies auch die maximal mögliche Anzahl gleichzeitiger Verbindungen. Das auf 128 MByte gesetzte »memory_limit« sorgt dafür, dass PHP-Prozesse maximal 96 * 128 MByte Arbeitsspeicher belegen, in Summe also rund 12 GByte. Somit bleiben 4 GByte für andere Prozesse auf dem System übrig.

Nginx-Host definieren

Die Konfigurationsdateien für Nginx-Sites liegen bei Debian und Ubuntu im Verzeichnis »/etc/nginx/sites-available/« . Dort befindet sich nach der Installation bereits die Datei »default« , sie dient als Grundlage für die Konfiguration des Magento-Shops. Nach einigen Anpassungen sieht sie aus wie in Listing 3, das die Einträge in den Kommentarzeilen erläutert.

Listing 3

Host-Konfiguration für Nginx

01 server {
02         listen          80;
03         server_name     localhost;
04         root            /var/www/html/;
05         autoindex       off;
06
07         # Gzip-Komprimierung
08         gzip on;
09         gzip_min_length 1100;
10         gzip_buffers 4 8k;
11         gzip_proxied any;
12         gzip_types text/plain text/css application/x-javascript text/javascript application/json;
13
14         location / {
15             index index.php;
16             try_files $uri $uri/ @handler;
17             expires 30d;
18         }
19
20
21         # .htaccess-Schutz ersetzen
22         location ~ (/(app/|includes/|lib/|/pkginfo/|var/|report/config.xml)|/\.svn/|/.hta.+) {
23             deny all;
24         }
25
26         # statische Dateien direkt ausliefern
27         location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
28             access_log        off;
29             expires           30d;
30             root /var/www/html/;
31         }
32
33         # / an den Magento-Frontcontroller weiterleiten
34         location @handler {
35             rewrite / /index.php;
36         }
37
38         # PHP an PHP-FPM weiterreichen
39         location ~ \.php$ {
40             if (!-e $request_filename) { rewrite / /index.php last; }
41
42             expires        off;
43             fastcgi_pass   127.0.0.1:9000;
44             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
45             include        /etc/nginx/fastcgi_params;
46         }
47 }

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook