Introductie
Nginx is een gratis en open-source webserver die wordt gebruikt om websites en applicaties van alle groottes te hosten. De software staat bekend om zijn lage impact op geheugenbronnen, hoge schaalbaarheid en zijn modulaire, op gebeurtenissen gebaseerde architectuur die veilige, voorspelbare prestaties kan bieden. Meer dan alleen een webserver, werkt Nginx ook als een load balancer, een HTTP-cache en een omgekeerde proxy.
In deze handleiding installeer je Nginx op je Debian 10-server.
Vereisten
Voordat je deze handleiding start, moet je een reguliere, niet-rootgebruiker met sudo-rechten geconfigureerd hebben op je server. Je moet ook een actieve firewall hebben. Je kunt leren hoe je dit moet instellen door onze initiële serverinstallatiehandleiding voor Debian 10 te volgen.
Stap 1 – Nginx installeren
Nginx is beschikbaar in de standaardsoftwarebronnen van Debian, waardoor het mogelijk is om het te installeren via conventionele pakketbeheertools.
Eerst moet u uw lokale pakketindex bijwerken om de laatste wijzigingen van de upstream te weerspiegelen:
Vervolgens installeert u het nginx
-pakket:
Bevestig de installatie door Y
in te voeren en druk vervolgens op Enter
om door te gaan. apt
zal dan Nginx en alle benodigde afhankelijkheden op uw server installeren.
Stap 2 – Firewall aanpassen
Voordat u Nginx test, is het noodzakelijk om de firewall-instellingen aan te passen om externe toegang tot de standaard webpoorten toe te staan. Als u de instructies in de voorwaarden hebt gevolgd, zou u een UFW-firewall moeten hebben geconfigureerd om de toegang tot uw server te beperken.
Tijdens de installatie registreert Nginx zichzelf bij UFW om een paar toepassingsprofielen te bieden die kunnen worden gebruikt om de toegang tot Nginx via de firewall in of uit te schakelen.
Vermeld de ufw
-toepassingsprofielen door te typen:
U moet een lijst met de toepassingsprofielen krijgen:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
Zoals u kunt zien, zijn er drie profielen beschikbaar voor Nginx:
- Nginx Full: Dit profiel opent zowel poort
80
(normaal, ongecodeerd webverkeer) als poort443
(TLS/SSL-gecodeerd verkeer) - Nginx HTTP: Dit profiel opent alleen poort
80
(normaal, ongecodeerd webverkeer) - Nginx HTTPS: Dit profiel opent alleen poort
443
(TLS/SSL-gecodeerd verkeer).
Het wordt aanbevolen om het meest restrictieve profiel in te schakelen dat nog steeds het verkeer toestaat dat je hebt geconfigureerd. Aangezien je nog geen TLS/SSL hebt geconfigureerd voor je server in deze handleiding, hoef je alleen verkeer voor HTTP op poort 80
toe te staan.
Dit kun je inschakelen door het volgende in te typen:
Je kunt de wijziging verifiëren door het volgende in te typen:
Wat verschijnt zijn de toegestane HTTP-verkeer in de uitvoer:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Stap 3 – Controleer uw webserver
Aan het einde van het installatieproces start Debian 10 Nginx. De webserver zou al moeten draaien.
Je kunt controleren met het systemd
init-systeem om ervoor te zorgen dat de service draait door het volgende in te typen:
Output● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
Deze uitvoer onthult dat de service succesvol is gestart. De beste manier om dit echter te testen, is eigenlijk een pagina van Nginx aan te vragen.
Je kunt de standaard Nginx-startpagina openen om te bevestigen dat de software correct werkt door naar het IP-adres van je server te navigeren. Als je het IP-adres van je server niet kent, kun je dit typen bij de opdrachtprompt van je server:
Je krijgt een paar regels terug. Je kunt elk ervan proberen in je webbrowser om te zien of ze werken.
Als je het IP-adres van je server hebt, voer je het in de adresbalk van je browser in:
http://your_server_ip
De standaard Nginx-landingspagina moet verschijnen in uw webbrowser:
Deze pagina is inbegrepen bij Nginx om u te laten zien dat de server correct draait.
Stap 4 – Beheren van het Nginx-proces
Nu u uw webserver hebt opgestart en draaiende, kunt u enkele basisbeheercommando’s bekijken.
Om uw webserver te stoppen, typ:
Om de webserver te starten wanneer deze gestopt is, typ:
Om de service te stoppen en vervolgens opnieuw te starten, typ:
Als u configuratiewijzigingen aanbrengt, kan Nginx vaak herladen zonder verbindingen te verbreken. Om dit te doen, typ:
Standaard is Nginx geconfigureerd om automatisch te starten wanneer de server opstart. Als dit niet is wat u wilt, kunt u dit gedrag uitschakelen door te typen:
Om de service opnieuw in te schakelen om bij het opstarten te starten, kunt u typen:
Stap 5 – Instellen van Server Blocks (Optioneel)
Wanneer u de Nginx-webserver gebruikt, kunnen serverblokken (vergelijkbaar met virtuele hosts in Apache) worden gebruikt om configuratiegegevens te encapsuleren en meer dan één domein op één server te hosten. Vervang in de volgende opdrachten uw_domein
door uw eigen domeinnaam. Voor meer informatie over het instellen van een domeinnaam met DigitalOcean, zie onze introductie tot DigitalOcean DNS.
Nginx op Debian 10 heeft standaard één serverblok ingeschakeld dat is geconfigureerd om documenten te serveren uit een directory op /var/www/html
. Hoewel dit goed werkt voor één site, kan het onhandelbaar worden als u meerdere sites host. In plaats van /var/www/html
te wijzigen, maakt u een directorystructuur binnen /var/www
aan voor de website uw_domein
, waarbij /var/www/html
op zijn plaats blijft als de standaarddirectory die wordt geserveerd als een clientaanvraag niet overeenkomt met andere sites.
Maak de directory voor uw_domein
als volgt aan, met de -p
-vlag om eventuele benodigde bovenliggende directories te maken:
Wijs vervolgens eigendom van de directory toe met de omgevingsvariabele $USER
, die moet verwijzen naar uw huidige systeemgebruiker:
De rechten van uw webroot zouden correct moeten zijn als u uw umask
-waarde niet hebt gewijzigd, maar u kunt dit controleren door te typen:
Maak vervolgens een voorbeeldpagina index.html
aan met behulp van nano
of uw voorkeurteksteditor:
Voeg binnenin de volgende voorbeeld-HTML toe:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
Sla het bestand op en sluit het af wanneer je klaar bent. In nano
kun je dit doen door op CTRL + X
te drukken, vervolgens op Y
, en dan op ENTER
.
Om Nginx deze inhoud te laten serveren, moet je een serverblok maken met de juiste richtlijnen die verwijzen naar je aangepaste webroot. In plaats van de standaard configuratiebestand rechtstreeks aan te passen, maak je een nieuw bestand aan op /etc/nginx/sites-available/jouw_domein
:
Voeg het volgende configuratieblok toe, dat vergelijkbaar is met de standaard, maar bijgewerkt voor je nieuwe directory en domeinnaam:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Let op de bijgewerkte root
configuratie naar je nieuwe directory en de server_name
naar je domeinnaam. Vergeet niet om jouw_domein
te vervangen door je daadwerkelijke domeinnaam.
Vervolgens activeer je dit serverblok door een symbolische link te maken naar je aangepaste configuratiebestand binnen de sites-enabled
directory, waar Nginx tijdens het opstarten uit leest:
Je server heeft nu twee geactiveerde serverblokken en geconfigureerd om te reageren op verzoeken op basis van hun listen
en server_name
richtlijnen (je kunt meer lezen over hoe Nginx deze richtlijnen verwerkt hier):
jouw_domein
: Zal reageren op verzoeken voorjouw_domein
enwww.jouw_domein
.standaard
: Zal reageren op alle verzoeken op poort80
die niet overeenkomen met de andere twee blokken.
Om een mogelijk geheugenprobleem met hash-emmers te voorkomen dat kan ontstaan door het toevoegen van extra servernamen aan uw configuratie, is het nodig om een enkele waarde aan te passen in het bestand /etc/nginx/nginx.conf
. Open het bestand:
Vind de directive server_names_hash_bucket_size
en verwijder het #
-symbool om de regel uit te commentariëren:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Sla het bestand op en sluit het wanneer u klaar bent.
Vervolgens test u om er zeker van te zijn dat er geen syntaxfouten zijn in een van uw Nginx-bestanden:
Als er geen problemen zijn, is dit de uitvoer:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Zodra uw configuratietest slaagt, herstart u Nginx om uw wijzigingen toe te passen:
Nginx zou nu uw domeinnaam moeten bedienen. U kunt dit testen door naar http://uw_domein
te navigeren. De aangepaste HTML die u heeft gemaakt in de map /var/www/uw_domein/html/index.html
moet hier worden weergegeven:
Stap 6 – Vertrouwd raken met Belangrijke Nginx-bestanden en Mappen
Nu u weet hoe u de Nginx-service zelf kunt beheren, kunt u wat tijd nemen om vertrouwd te raken met een paar belangrijke mappen en bestanden.
Inhoud
/var/www/html
: De daadwerkelijke webinhoud, die standaard alleen bestaat uit de standaard Nginx-pagina die je eerder hebt gezien, wordt geserveerd vanuit de map/var/www/html
. Dit kan worden gewijzigd door Nginx-configuratiebestanden aan te passen.
Serverconfiguratie
/etc/nginx
: De Nginx-configuratiemap. Alle Nginx-configuratiebestanden bevinden zich hier./etc/nginx/nginx.conf
: Het hoofd-Nginx-configuratiebestand. Dit kan worden aangepast om wijzigingen aan te brengen in de wereldwijde Nginx-configuratie./etc/nginx/sites-available/
: De map waar per-site serverblokken kunnen worden opgeslagen. Nginx zal de configuratiebestanden in deze map niet gebruiken, tenzij ze zijn gekoppeld aan de mapsites-enabled
. Meestal wordt alle serverblokconfiguratie in deze map gedaan en vervolgens ingeschakeld door te koppelen naar de andere map./etc/nginx/sites-enabled/
: De map waar ingeschakelde per-site serverblokken worden opgeslagen. Deze worden meestal gemaakt door te koppelen naar configuratiebestanden die in de mapsites-available
zijn gevonden./etc/nginx/snippets
: Deze map bevat configuratiefragmenten die elders in de Nginx-configuratie kunnen worden opgenomen. Potentieel herhaalbare configuratiesegmenten zijn goede kandidaten voor refactoring in snippets.
Server Logs
/var/log/nginx/access.log
: Elke aanvraag naar uw webserver wordt vastgelegd in dit logbestand, tenzij Nginx anders is geconfigureerd./var/log/nginx/error.log
: Eventuele Nginx-fouten worden vastgelegd in dit logboek.
Conclusie
Nu u uw webserver hebt geïnstalleerd, heeft u veel opties voor het type inhoud dat u kunt serveren en de technologieën die u kunt gebruiken om een rijkere ervaring te bieden voor uw gebruikers.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10