wanneer u klaar bent met het schrijven van code voor uw website of web-app, moet u deze op een bepaalde locatie plaatsen waar het kan draaien en inhoud aan uw gebruikers kan leveren. Dit is waar webserversoftware van pas komt. Een eenvoudige Google-zoekopdracht van Webserver software brengt u een hele lijst van oplossingen om uit te kiezen.
in deze tutorial ligt onze focus op Nginx; en specifiek hoe u het kunt laten draaien op Ubuntu 18.04. Nginx is een van de meest populaire webserver software in de wereld. In feite neemt het een plek in de top vijf op Opensource.com ranglijsten. Het is verantwoordelijk voor het waarborgen van de beschikbaarheid en schaalbaarheid van de sites met het hoogste verkeer op het internet. Het garandeert veiligheid en u kunt het gebruiken als een reverse proxy. Dus, hoe kunt u Nginx installeren op Ubuntu 18.04?
Prerequisites
natuurlijk hebt u al een computer waarop Ubuntu 18.0.4 wordt uitgevoerd; en u hebt een niet-root gebruiker met sudo-rechten. Als dit niet het geval is, ga dan naar deze link om Ubuntu 18.0.4 te downloaden en volg vervolgens de handleidingen bij de eerste serverinstellingen met Ubuntu om een niet-root-account te maken. Zodra je een account hebt, moet je inloggen als een niet-root gebruiker, en dan kunnen we doorgaan met de volgende stappen.
Stap 1 – Installeer Nginx
Ubuntu is gebaseerd op Debian. Om deb-pakketten vanaf de opdrachtregel te installeren, kunt u Apt-of dpkg-opdrachten gebruiken. We zullen het Apt commando gebruiken omdat het populairder is. Apt Commando stelt gebruikers in staat om pakketten te installeren die beschikbaar zijn vanuit de standaard repositories van de specifieke Linux distributie die ze draaien. In dit geval hebben we Nginx beschikbaar op de standaard repositories van Ubuntu 18.04, dus we kunnen doorgaan. Als vuistregel moet je nu en bij het installeren van een pakket op een Linux distributie eerst updaten; voer het volgende commando in de terminal in om te updaten:
sudo apt update
om Nginx te installeren, voer je het volgende commando in:
sudo apt install nginx
Volg de instructies, en Nginx zal op je server worden geïnstalleerd samen met de nodige afhankelijkheden.
Stap 2 – Pas De Firewall aan
De standaard firewall configuratie tool voor Ubuntu is UFW. UFW staat voor ongecompliceerde Firewall en het is ontwikkeld om Firewall configuratie te vergemakkelijken. Standaard registreert Nginx zichzelf als een service met UFW na de installatie, wat het makkelijker maakt voor Nginx toegang configuratie. Activeer eerst de UFW door het volgende commando in te voeren:
sudo ufw enable
het volgende commando toont de applicatie configuratie die UFW toestaat:
sudo ufw app list
Hier is een screengrab van hoe uw terminal eruit zou kunnen zien:
Het toont 3 profielen beschikbaar voor nginx. Ze worden hieronder beschreven:
- nginx Full-het opent zowel poort 80 als 443. Poort 80 is voor normaal / niet-versleuteld verkeer, dwz http. Poort 443 is voor TLS / SSL gecodeerd verkeer. dat wil zeggen https.
- Nginx HTTP-het opent alleen poort 80.
- Nginx HTTPS-het opent alleen poort 443.
als aanbeveling moet u alleen het profiel inschakelen dat het verkeer toestaat dat u hebt geconfigureerd voor uw webtoepassing. In dit geval gaan we voor Nginx HTTP (poort 80) omdat we SSL niet hebben geconfigureerd. Het volgende commando zet dit aan:
sudo ufw allow 'Nginx HTTP'sudo ufw allow 'OpenSSH'
om de wijziging te verifiëren, voert u het volgende commando in:
sudo ufw status
uw terminal zou iets moeten tonen dat lijkt op de screengrab hieronder. Merk op dat het HTTP-verkeer overal is toegestaan:
Stap 3 – Controleer uw webserver
Na het installeren van Nginx op Ubuntu 18.04, start de service automatisch. U kunt dit testen door het volgende commando in uw terminal in te voeren:
systemctl status nginx
uw terminal zou ongeveer als volgt moeten tonen:
Dit geeft aan dat de service automatisch is gestart en dat deze draait. Zoals u al weet, het belangrijkste doel van server software is om inhoud te dienen. Om dit doel te testen moet u een pagina aanvragen. U kunt dit doen door toegang te krijgen tot het IP-adres van uw server vanuit de browser, die moet de standaard Nginx landing page weer te geven. Als u het IP-adres van uw server niet weet, zijn hieronder enkele commando ‘ s om u te helpen het te krijgen:
ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Hieronder is een ander commando dat u kunt gebruiken. Het geeft u het openbare IP-adres Zoals Gezien vanaf locaties op het internet:
curl -4 icanhazip.com
het eerste commando geeft u een adres zoals getoond in de terminal hieronder. Kopieer en test het vervolgens in uw browser:
uw browser laadt de standaard Nginx-pagina die eruit ziet als de volgende schermafbeelding. Het toont aan dat uw Nginx server daadwerkelijk draait:
Stap 4-Basic Nginx Management Commands
U hebt het commando al gezien dat de status van Nginx controleert:
systemctl status nginx
nu we de server draaiend hebben, zijn hier nog meer commando ‘ s die je bij de hand moet houden voor het beheren van de Nginx service. Deze opdrachten werken niet alleen op Ubuntu 18.04, maar ook op alle Linux-distributies.
om de server te stoppen, voert u het volgende commando in:
sudo systemctl stop nginx
om de server te starten, voert u het volgende commando in:
sudo systemctl start nginx
wanneer u belangrijke wijzigingen aanbrengt, zoals het wijzigen van poorten of interfaces, moet u de webserver opnieuw opstarten. Het commando hieronder Herstart de server:
sudo systemctl restart nginx
wanneer u kleine configuratiewijzigingen aanbrengt, zoals het bewerken van serverblokken, kan Nginx herladen zonder verbindingen te laten vallen. Hier is het commando om te herladen:
sudo systemctl reload nginx
Nginx start automatisch de server wanneer uw Ubuntu OS opstart. Als u deze instelling echter wilt wijzigen, kunt u de service uitschakelen door het onderstaande commando in te voeren:
sudo systemctl disable nginx
en u kunt de service opnieuw inschakelen om automatisch te starten wanneer u uw machine de volgende keer opstart door in te voeren:
sudo systemctl enable nginx
Stap 5 – Serverblokken instellen
mogelijk wilt u meerdere websites (domeinen) hosten op één webserver. Server blokken zou u helpen dit te bereiken. Als u Apache eerder hebt gebruikt, kunnen serverblokken in Nginx worden vergeleken met Apache Vhosts. Uit de doos, Nginx wordt geleverd met een server blok geconfigureerd om te draaien vanuit de directory / var / www / html, degene die de standaard Nginx pagina geladen in een sectie hierboven. Dit serverblok is prima bij het draaien van een enkele site. Echter, het runnen van veel sites zal een probleem zijn.
we willen een andere site op dezelfde server aanmaken en deze aanroepen samplesite.com (dit is slechts een voorbeeld, je zou het moeten vervangen door je eigen domeinnaam).
in de/var/ www / map, Maak een andere map aan voor samplesite.com. laat de standaard/var/www / html aan verzoeken die niet overeenkomen met een andere site. Het commando hieronder maakt de map aan voor samplesite.com zoals we hebben beschreven. De-p vlag is om ervoor te zorgen dat het commando alle noodzakelijke bovenliggende mappen aanmaakt:
sudo mkdir -p /var/www/samplesite.com/html
om toegang tot de map toe te staan, moet u eigendom toewijzen met de $USER omgevingsvariabele:
sudo chown -R $USER:$USER /var/www/samplesite.com/html
om te controleren of de rechten voor uw web roots correct zijn, voert u het volgende commando in:
sudo chmod -R 755 /var/www/samplesite.com
index.html in de samplesite.com directory. U kunt de nano-editor openen als:
nano /var/www/samplesite.com/html/index.html
het commando opent een editor in uw terminal, voeg de volgende code toe:
<html><head><title>Welcome to samplesite.com!</title></head><body><h1>Success! The samplesite.com server block is running fine!</h1></body></html>
Typ Ctrl + O, druk vervolgens op Enter om het bestand op te slaan. Typ Ctrl + X om de editor te sluiten.
daarna kunt u het serverblok aanmaken. In plaats van het standaard configuratiebestand te bewerken en te vervuilen, wordt aangeraden een nieuw bestand aan te maken in /etc/nginx/sites-available/samplesite.com. voer het volgende commando in om de nano-editor te openen:
sudo nano /etc/nginx/sites-available/samplesite.com
in de editor, voer de volgende code in, aangepast voor de map die u hebt aangemaakt. Merk op dat de rootnaam en server_name overeenkomt met onze directory en het domein dat we willen bedienen:
server { listen IP_ADDRESS:80; listen :80; root /var/www/samplesite.com/html; index index.html index.htm index.nginx-debian.html; server_name samplesite.com samplesite.com; location / { try_files $uri $uri/ =404; }}
sla vervolgens het bestand op en sluit het.
Nginx leest configuratiebestanden van sites-enabled directory, dus u moet een symlink maken van uw nieuwe serverblok naar de sites-enabled directory. Het volgende commando zal dat doen:
sudo ln -s /etc/nginx/sites-available/samplesite.com /etc/nginx/sites-enabled/
u hebt nu twee serverblokken die twee websites op één Nginx-server kunnen bedienen.
het volgende commando reageert op verzoeken op de domeinen samplesite.com en www.samplesite.com.
curl samplesite.com
en de standaard zal reageren op verzoeken die poort 80 raken en niet overeenkomen met een van de twee serverblokken:uw Nginx-server kan waarschijnlijk een hash bucket-geheugenprobleem ondervinden bij het toevoegen van extra serverblokken. Om dit te voorkomen, moet u een enkel bestand in de nginx aanpassen.conf file. Open vervolgens het bestand met de nano-editor:
sudo nano /etc/nginx/nginx.conf
Zoek vervolgens de directive: server_names_hash_bucket_size en verwijder het # – symbool om het te verwijderen, zodat het er als volgt uitziet:
http { server_names_hash_bucket_size 64;}
volgende, sla het bestand op en sluit het.
om te testen of al uw Nginx-bestanden geen fouten bevatten, dient u het volgende commando in te voeren:
sudo nginx -t
als alles in orde is, zou u zoiets als dit moeten zien:
om de configuratiewijzigingen door te voeren, moet u eerst de nginx-server starten met het onderstaande commando:
sudo systemctl restart nginx
voer nu het domein in en u ziet de HTML-pagina die we hebben gemaakt.
Stap 6-belangrijke Nginx-bestanden en-mappen die u moet kennen
- Main content directory
– / var / www/html: De standaard Nginx-pagina wordt in deze map opgeslagen. Het is de werkelijke inhoud die u ziet wanneer u uw server IP-adres. U kunt dit gedrag wijzigen door de Nginx configuratiebestanden te wijzigen.
- Nginx configuratiemappen
–/etc / nginx: de hoofdmap die alle Nginx configuratiebestanden bevat.
– / etc/nginx / nginx.conf: het belangrijkste Nginx configuratiebestand dat kan worden gewijzigd om globale veranderingen aan te brengen op de nginx server.
– / etc/ nginx / sites-available/: het is de map waar u per-site server blokken opslaat. Alle serverblokken bevinden zich in deze map. Een symlink koppelt ze aan de directory met sites. Als we de inhoud van deze director opsommen, zouden we het serverblok moeten zien dat we hebben aangemaakt en het standaard Nginx serverblok.
– /etc/nginx/sites-enabled/: de Enable per-site server blokken bestaan in deze map. Ze zijn gekoppeld aan de eigenlijke configuratiebestanden in de map sites-available.
– /etc/nginx/ snippets/: de map waar u configuratiefragmenten opslaat die in andere configuraties kunnen worden opgenomen-bijv. repetitieve configuratiefragmenten.
- Server Logs
– / var/log/nginx / access.log: dit bestand registreert elk verzoek dat je server raakt, tenzij je Nginx hebt geconfigureerd om in een ander bestand op te slaan of iets anders te doen.
– / var / log / nginx / error.log: dit bestand registreert alle Nginx-fouten. Dit is waar u zult komen om problemen op te lossen wanneer uw server niet draait zoals verwacht.
conclusie
We zijn aan het einde van de reis gekomen. U hebt Nginx geïnstalleerd op Ubuntu 18.04, geconfigureerde firewalls, geconfigureerde server blokken en ervoor gezorgd dat de sites toegankelijk zijn in uw browser. Gefeliciteerd! Nu is het aan jou om erachter te komen welke content je wilt serveren aan uw gebruikers.
Happy Computing!