Nginx- en PHP-FPM-configuratie
Stel Nginx in als reverse proxy voor PHP-FPM om PHP-applicaties te serveren.
Nginx- en PHP-FPM-configuratie is een gratis PHP Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject PHP Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus PHP Academy bevat in totaal 4 lessen.
Waarom Nginx + PHP-FPM?
Nginx is een krachtige webserver en reverseproxy. PHP-FPM (FastCGI Process Manager) beheert een groep PHP-werkprocessen. Nginx geeft PHP-verzoeken via FastCGI door aan FPM.
Basisserverblok van Nginx
Een minimale Nginx-configuratie voor een PHP-toepassing.
# /etc/nginx/sites-available/myapp
server {
listen 80;
server_name example.com;
root /srv/myapp/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}De richtlijn try_files
try_files $uri $uri/ /index.php?$query_string probeert eerst een statisch bestand te serveren. Als het niet wordt gevonden, valt de richtlijn terug op index.php — zo wordt routering via één centrale ingang mogelijk (Laravel, Symfony).
PHP-FPM-poolconfiguratie
Configureer de groep werkprocessen in /etc/php/8.3/fpm/pool.d/www.conf.
[www]
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests = 500 ; recycle workers to prevent leaksUnix-socket versus TCP
Een Unix-socket (fastcgi_pass unix:/run/php/php8.3-fpm.sock) gebruiken is sneller dan TCP (127.0.0.1:9000) voor communicatie op dezelfde machine.
HTTPS met Let's Encrypt
Gebruik Certbot om gratis TLS-certificaten te verkrijgen.
$ certbot --nginx -d example.com
# Certbot modifies your Nginx config and sets up auto-renewalGzip-compressie
Schakel gzip in om de omvang van antwoorden te verkleinen.
# nginx.conf or server block:
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_min_length 1024;Browsercache voor statische bestanden
Voeg cache-control-kopteksten toe voor statische bestanden.
location ~* \.(js|css|png|jpg|gif|ico|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}Verzoeken beperken in Nginx
Beperk verzoeken per IP-adres met de module limit_req — de eerste verdedigingslinie voordat PHP zelfs maar start.
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}
server {
location /api/ {
limit_req zone=one burst=20 nodelay;
}
}Beveiligingskopteksten
Voeg beveiligingskopteksten toe aan alle antwoorden.
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";Herladen versus opnieuw starten
Laad de Nginx-configuratie na wijzigingen gecontroleerd opnieuw, zonder uitvaltijd: nginx -t && nginx -s reload. Laad de PHP-FPM-configuratie na wijzigingen opnieuw met: systemctl reload php8.3-fpm.
Samenvatting
Configureer Nginx met een serverblok dat via FastCGI naar public/index.php verwijst. Stel de instellingen van de PHP-FPM-groep af. Gebruik Unix-sockets. Schakel HTTPS, gzip en caching van statische bestanden in.
Korte controle
Wat doet try_files $uri $uri/ /index.php?$query_string?
Leer PHP met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 49
- Lessen
- 195
Veelgestelde vragen
Is de les “Nginx- en PHP-FPM-configuratie” gratis?
Ja — de volledige tekst van “Nginx- en PHP-FPM-configuratie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus PHP Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus PHP Academy bevat in totaal 4 lessen.
Wat leer ik in “Nginx- en PHP-FPM-configuratie”?
Stel Nginx in als reverse proxy voor PHP-FPM om PHP-applicaties te serveren. Je oefent met PHP Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met PHP Academy te beginnen?
Ervaring vooraf is niet nodig. PHP Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Nginx- en PHP-FPM-configuratie”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over PHP Academy?
Ja. Elke les over PHP Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Nginx- en PHP-FPM-configuratie
- Omgevingsvariabelen en .env-bestanden
- Deployen met GitHub Actions
- Een PHP-applicatie dockerizen