Opzetten Nginx Op een Linux-server kunt u uw pakketten bijwerken en installeren. Nginx Download de benodigde software vanuit de repository van je distributie, sta HTTP/HTTPS toe in je firewall, start en activeer de service, maak een serverblok aan voor je domein, test de configuratie en herlaad de pagina. NginxEn voeg gratis TLS toe met Let's Encrypt voor HTTPS. De stappen kunnen per distributie enigszins verschillen.
In deze handleiding leer je hoe je dit instelt. Nginx Een Linux-server helemaal vanaf nul opzetten - inclusief installatie, firewallregels, serverblokkeringen, SSL, reverse proxy en essentiële optimalisaties. Of je nu Ubuntu, Debian, CentOS, AlmaLinux of openSUSE gebruikt, volg deze stappen voor een schone, veilige en krachtige installatie. Nginx configuratie.
Vereisten en wat je nodig hebt
- Een Linux-server (Ubuntu/Debian, CentOS/AlmaLinux/RHEL, openSUSE of Amazon Linux)
- Root- of sudo-toegang
- Een domeinnaam (optioneel, maar aanbevolen voor HTTPS)
- Basiskennis van terminals
- Open poorten 80 (HTTP) en 443 (HTTPS).
Install Nginx op Linux (alle belangrijke distributies)
Ubuntu / Debian
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
sudo systemctl status nginx --no-pagerRHEL/CentOS/AlmaLinux/Amazon Linux
# RHEL/AlmaLinux/Rocky (EPEL may be needed on some versions)
sudo dnf install -y nginx
sudo systemctl enable --now nginx
sudo systemctl status nginx --no-pager
# CentOS 7 (legacy)
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl enable --now nginx
# Amazon Linux 2
sudo amazon-linux-extras install -y nginx1
sudo systemctl enable --now nginxopenSUSE
sudo zypper refresh
sudo zypper install -y nginx
sudo systemctl enable --now nginxSchakel HTTP/HTTPS in de firewall (en SELinux) in.
UFW (Ubuntu/Debian)
sudo ufw allow 'Nginx Full' # opens 80 and 443
sudo ufw statusfirewalld (RHEL/CentOS/AlmaLinux/Fedora)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-allSELinux (indien van toepassing)
Als SELinux actief is en je via een proxy verbinding maakt met upstream-applicaties, sta dan netwerkverbindingen toe:
sudo setsebool -P httpd_can_network_connect 1Nginx Mappenstructuur en basisconfiguratie
- Hoofd configuratie:
/etc/nginx/nginx.conf - Extra configuraties:
/etc/nginx/conf.d/*.conf(alle distributies) - Serverblokken in Debian-stijl:
/etc/nginx/sites-available/, symbolische link naarsites-enabled/ - Standaard webroot:
/var/www/html - logs:
/var/log/nginx/access.log,/var/log/nginx/error.log
Valideer wijzigingen altijd met nginx -t en herlaad de service. Dit voorkomt downtime als gevolg van syntaxfouten.
Maak een serverblok (virtuele host) aan voor uw domein.
Hieronder staat een eenvoudig serverblok voor demo.example.com Statische bestanden serveren. Pas paden en domein naar behoefte aan.
sudo mkdir -p /var/www/demo.example.com/html
sudo chown -R $USER:$USER /var/www/demo.example.com/html
echo "<h1>Hello from Nginx on Linux!</h1>" | sudo tee /var/www/demo.example.com/html/index.htmlDebian/Ubuntu-indeling:
sudo nano /etc/nginx/sites-available/demo.example.comserver {
listen 80;
listen [::]:80;
server_name demo.example.com;
root /var/www/demo.example.com/html;
index index.html;
access_log /var/log/nginx/demo_access.log;
error_log /var/log/nginx/demo_error.log;
location / {
try_files $uri $uri/ =404;
}
}sudo ln -s /etc/nginx/sites-available/demo.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxRHEL/CentOS/AlmaLinux-indeling:
sudo nano /etc/nginx/conf.d/demo.example.com.confserver {
listen 80;
server_name demo.example.com;
root /var/www/demo.example.com/html;
index index.html;
access_log /var/log/nginx/demo_access.log;
error_log /var/log/nginx/demo_error.log;
location / {
try_files $uri $uri/ =404;
}
}sudo nginx -t
sudo systemctl reload nginxVoeg gratis HTTPS toe met Let's Encrypt (Certbot)
Gebruik Certbot's Nginx Plugin voor het aanvragen en automatisch configureren van certificaten. Zorg ervoor dat... DNS omdat uw domein verwijst naar het IP-adres van uw server en poort 80 open staat.
Installeer Certbot
# Ubuntu/Debian (snap recommended)
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# RHEL/AlmaLinux/CentOS
sudo dnf install -y certbot python3-certbot-nginx
# openSUSE
sudo zypper install -y certbot python3-certbot-nginxCertificaten verkrijgen en installeren
sudo certbot --nginx -d demo.example.com
# Choose to redirect HTTP to HTTPS when promptedCertbot stelt automatische verlenging in via systemd of cron. Test de verlenging met:
sudo certbot renew --dry-runGebruik Nginx als een reverse proxy (Node.js/Python/PHP-FPM)
Om een applicatie te bedienen die luistert naar 127.0.0.1:3000, configureren Nginx als een reverse proxy met de juiste headers en WebSocket-ondersteuning:
server {
listen 80;
server_name app.example.com;
# Optional: large uploads
client_max_body_size 20m;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSockets
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Schakel op SELinux-systemen netwerkverbindingen in zoals eerder vermeld. PHP apps, gebruik fastcgi_pass naar PHP-FPM (bijv. unix:/run/php/php8.2-fpm.sock).
Essentiële zaken voor prestatieoptimalisatie
- Schaal het aantal werknemers automatisch op en verhoog het aantal verbindingen voor drukke locaties.
- Comprimeer assets (gzip) en cache statische bestanden zo veel mogelijk.
- Schakel versie-tokens in reacties uit.
- Gebruik standaard HTTP/2 voor TLS (Certbot schakelt dit in bij veel configuraties).
# /etc/nginx/nginx.conf (http block or include a conf.d/tuning.conf)
worker_processes auto;
events { worker_connections 4096; }
http {
server_tokens off;
# Gzip
gzip on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/plain text/css application/javascript application/json application/xml image/svg+xml;
# Cache static assets (adjust paths/locations)
map $sent_http_content_type $expires {
default off;
~image/ 30d;
~font/ 30d;
~text/css 7d;
~application/javascript 7d;
}
# Example static caching location
# location ~* \.(?:css|js|jpg|jpeg|png|gif|svg|ico|webp|woff2?)$ {
# expires $expires;
# add_header Cache-Control "public, immutable";
# }
}Logging en monitoring
- Volg de logbestanden tijdens het debuggen:
sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log - Analyseer het verkeer met GoAccess:
sudo apt install goaccesshartegoaccess /var/log/nginx/access.log --log-format=COMBINED - Integreren met systemd journal:
sudo journalctl -u nginx -e
Veelvoorkomende fouten en snelle oplossingen
- Poort al in gebruik: Er is een andere dienst op 80/443. Neem contact op met
sudo ss -ltnp | grep ':80\|:443'en de conflicterende service stoppen/uitschakelen. - Syntaxfout: Uitvoeren
sudo nginx -tCorrigeer de gemelde regel en probeer het opnieuw. - 403 Verboden: Controleer de bestandsrechten/eigendom in uw
rootpad. Webgebruiker (bijv.www-dataornginx) heeft leesrechten nodig. - 502 Bad Gateway: De upstream-app is niet beschikbaar of heeft een foutieve verbinding.
proxy_pass/fastcgi_passControleer het IP-adres, de poort en de socket van de app, en de SELinux-booleanwaarde. - SSL problemen: Zorg ervoor dat DNS Als het naar uw server verwijst, poort 80 open is, voer dan Certbot opnieuw uit. Verlengingen kunnen worden getest met
certbot renew --dry-run.
Wanneer kies je voor managed hosting versus zelfhosting?
Als u bedrijfskritieke sites implementeert, manageEen goede infrastructuur kan wekelijks uren besparen. YouStableOnze SSD/NVMe VPS-abonnementen leveren consistente prestaties, gratis SSLen 24/7 deskundige ondersteuning. Wij verzorgen serverbeveiliging, firewalls en Nginx Optimalisatie zodat u zich kunt concentreren op uw applicatie en niet op de details van Linux.
Stap voor stap: Veilig controleren en herladen
- Valideren:
sudo nginx -t - Herladen zonder downtime:
sudo systemctl reload nginx - Status controleren:
sudo systemctl status nginx --no-pager - Sondelocatie:
curl -I http://demo.example.comencurl -I https://demo.example.com
Controlelijst voor beste praktijken
- Houden Nginx en de besturingssysteempakketten zijn bijgewerkt.
- Gebruik aparte serverblokken per domein/subdomein.
- Schakel HTTPS in met HSTS (nadat u hebt gecontroleerd of TLS betrouwbaar werkt).
- Hanteer verstandige time-outs en verzoeklimieten om misbruik te voorkomen.
- Maak een back-up van de configuraties in
/etc/nginx/en gebruik versiebeheer. - Monitor logbestanden en stel waarschuwingen in voor pieken of 4xx/5xx-fouten.
Met deze stapsgewijze handleiding kunt u vol vertrouwen een installatie uitvoeren. Nginx Schakel op een Linux-server HTTPS in, proxy-applicaties en optimaliseer de prestaties. Als u de voorkeur geeft aan een snellere start, overweeg dan een YouStable VPS—klaar voor NginxBeveiliging en schaalbaarheid vanaf dag één.
Veelgestelde vragen: Installatie Nginx op een Linux-server
Hoe kan ik controleren of Nginx is aan het rennen?
Gebruik systemctl status nginx or sudo ss -ltnp | grep nginx om te bevestigen dat de server luistert op poorten 80/443. Je kunt ook het IP-adres van je server in een browser invoeren om de standaardinstellingen te bekijken. Nginx welkomstpagina.
Waar is de Nginx configuratiebestand op Linux?
Het hoofdbestand is /etc/nginx/nginx.confExtra configuraties worden toegevoegd. /etc/nginx/conf.d/*.confOp Ubuntu/Debian bevinden serverblokken zich in /etc/nginx/sites-available/ met symbolische links in sites-enabled/.
Hoe kan ik opnieuw laden? Nginx na configuratiewijzigingen?
Eerste loop sudo nginx -t om de syntax te controleren. Als alles in orde is, herlaad dan met sudo systemctl reload nginxEen herlaadactie past de wijzigingen toe zonder actieve verbindingen te verbreken.
Hoe stel ik meerdere websites (virtuele hosts) in?
Maak per domein een eigen serverblok aan. server_name en rootVoeg op Ubuntu/Debian bestanden toe aan sites-available/ en inschakelen met symbolische links naar sites-enabled/Op RHEL-gebaseerde distributies plaatst u elk domein in conf.d/ als een afzonderlijk .conf.
Is Nginx beter dan Apache?
Ze zijn allebei uitstekend. Nginx Blinkt uit in hoge gelijktijdigheid, levering van statische bestanden en reverse proxying. Apache biedt uitgebreide modules en flexibiliteit in .htaccess. Veel productieomgevingen maken er gebruik van. Nginx voor Apache of applicatieservers voor de beste resultaten.