Hoe Nginx te Installeren op Rocky Linux 9

Introductie

Nginx is een van de meest populaire webservers ter wereld en is verantwoordelijk voor het hosten van enkele van de grootste en meest bezochte sites op het internet. Het is een lichte keuze die kan worden gebruikt als webserver of omgekeerde proxy.

In deze handleiding leest u hoe u Nginx installeert op uw Rocky Linux 9-server, de firewall aanpast, het Nginx-proces beheert en serverblokken instelt voor het hosten van meerdere domeinen vanaf één server.

Vereisten

Voordat u met deze handleiding begint, dient u te beschikken over een reguliere, niet-rootgebruiker met sudo-rechten geconfigureerd op uw server. U kunt leren hoe u een regulier gebruikersaccount configureert door onze Handleiding voor het initiële serverconfiguratie van Rocky Linux 9 te volgen.

Optioneel wilt u ook een domeinnaam hebben geregistreerd voordat u de laatste stappen van deze handleiding voltooit. Voor meer informatie over het instellen van een domeinnaam bij DigitalOcean kunt u onze Introductie tot DigitalOcean DNS raadplegen.

Log in op uw account als uw niet-rootgebruiker om te beginnen.

Stap 1 – Het installeren van Nginx

Omdat Nginx beschikbaar is in de standaard repositories van Rocky, kunt u het installeren met één commando, gebruikmakend van de dnf pakketbeheerder.

Installeer het nginx pakket met dnf installeren:

  1. sudo dnf install nginx

Wanneer erom wordt gevraagd, voer y in om te bevestigen dat u nginx wilt installeren. Daarna zal dnf Nginx en eventuele vereiste afhankelijkheden op uw server installeren.

Na de installatie, voer de volgende commando’s uit om de webserver in te schakelen en te starten:

  1. sudo systemctl enable nginx
  2. sudo systemctl start nginx

Dit zal Nginx automatisch laten herstarten wanneer uw server opnieuw opstart. Uw nieuwe webserver zou nu actief moeten zijn, maar voordat u deze test, moet u waarschijnlijk een wijziging aanbrengen in de configuratie van uw firewall.

Stap 2 – Aanpassen van de Firewall

Als u de firewalld firewall heeft ingeschakeld als onderdeel van de initiële server installatiehandleiding voor Rocky Linux 9, moet u de firewall-instellingen aanpassen om externe verbindingen toe te staan op uw Nginx webserver, die standaard op poort 80 draait.

Voer de volgende opdracht uit om permanent HTTP-verbindingen op poort 80 in te schakelen:

  1. sudo firewall-cmd --permanent --add-service=http

Om te controleren of de http firewall-service correct is toegevoegd, kunt u het volgende uitvoeren:

  1. sudo firewall-cmd --permanent --list-all

Je ziet output zoals deze:

Output
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Om de wijzigingen toe te passen, moet je de firewall-service herladen:

  1. sudo firewall-cmd --reload

Je webserver moet nu toegankelijk zijn voor externe bezoekers.

Stap 3 – Controleer uw webserver

Op dit punt zou je webserver moeten draaien.

Je kunt de systemctl status opdracht gebruiken om ervoor te zorgen dat de service draait:

  1. systemctl status nginx
Output
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2022-09-14 21:03:46 UTC; 7min ago Process: 18384 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 18385 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 18386 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Main PID: 18387 (nginx) Tasks: 3 (limit: 10938) Memory: 2.8M CPU: 43ms CGroup: /system.slice/nginx.service ├─18387 "nginx: master process /usr/sbin/nginx" ├─18388 "nginx: worker process" └─18389 "nginx: worker process"

Zoals bevestigd door deze output, is de service succesvol gestart. De beste manier om dit te testen is echter door daadwerkelijk een pagina van Nginx op te vragen.

Je kunt de standaard Nginx-landingspagina 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 weet, kun je het vinden door de icanhazip.com-tool te gebruiken, die je je openbare IP-adres geeft zoals ontvangen van een andere locatie op het internet:

  1. curl -4 icanhazip.com

Wanneer je het IP-adres van je server hebt, voer het dan in de adresbalk van je browser in:

http://your_server_ip

Je zou de standaard Nginx-landingspagina moeten ontvangen:

Als je op deze pagina bent, draait je server correct en is klaar om beheerd te worden.

Stap 4 – Beheer van het Nginx-proces

Nu je webserver actief is, laten we eens kijken naar enkele servicebeheercommando’s.

Om je webserver te stoppen, gebruik systemctl stop:

  1. sudo systemctl stop nginx

Om de webserver te starten wanneer deze is gestopt, gebruik systemctl start:

  1. sudo systemctl start nginx

Om de service te stoppen en vervolgens opnieuw te starten, gebruik systemctl restart:

  1. sudo systemctl restart nginx

Als je alleen configuratiewijzigingen aanbrengt, kan Nginx vaak worden herladen zonder verbindingen te verbreken. Gebruik hiervoor systemctl reload:

  1. sudo systemctl reload nginx

Eerder in deze handleiding heb je Nginx geconfigureerd om automatisch te starten wanneer de server wordt opgestart. Je kunt dit gedrag uitschakelen door systemctl disable te gebruiken:

  1. sudo systemctl disable nginx

Om de service opnieuw in te schakelen om bij het opstarten te starten, kun je typen:

  1. sudo systemctl enable nginx

Stap 5 – Maak kennis met Belangrijke Nginx-bestanden en -mappen

Nu je weet hoe je de Nginx-service moet beheren, moet je een paar minuten nemen om jezelf vertrouwd te maken met een paar belangrijke mappen en bestanden.

Inhoud

  • /usr/share/nginx/html: De daadwerkelijke webinhoud, die standaard alleen bestaat uit de standaard Nginx-pagina die je eerder hebt gezien, wordt geserveerd vanuit de /usr/share/nginx/html-map. Dit kan worden gewijzigd door de 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 gewijzigd om wijzigingen aan te brengen in de wereldwijde Nginx-configuratie.
  • /etc/nginx/conf.d/: Deze map bevat configuratiebestanden voor serverblokken, waarin u de websites kunt definiëren die binnen Nginx worden gehost. Een gebruikelijke aanpak is om elke website in een apart bestand te hebben dat is vernoemd naar de domeinnaam van de website, zoals your_domain.conf.

Serverlogs

  • /var/log/nginx/access.log: Elke aanvraag aan uw webserver wordt geregistreerd in dit logbestand, tenzij Nginx is geconfigureerd om anders te doen.
  • /var/log/nginx/error.log: Eventuele Nginx-fouten worden geregistreerd in dit logboek.

Je zou nu klaar moeten zijn om de site te configureren om één of meer domeinen te hosten.

Stap 6 – Instellen van Server Blocks (Optioneel)

Bij het gebruik van de Nginx-webserver kunnen serverblokken (vergelijkbaar met virtuele hosts in Apache) worden gebruikt om configuratiedetails te organiseren en meer dan één domein vanaf een enkele server te hosten. Op Rocky Linux 9 worden serverblokken gedefinieerd in .conf-bestanden die zich bevinden in /etc/nginx/conf.d. We zullen een domein genaamd jouw_domein opzetten, maar je moet dit vervangen door je eigen domeinnaam.

Standaard is Nginx op Rocky Linux 9 geconfigureerd om documenten te serveren vanuit een map op /usr/share/nginx/html. Hoewel dit goed werkt voor een enkele site, kan het onbeheersbaar worden als je meerdere sites host. In plaats van /usr/share/nginx/html aan te passen, maak je een mappenstructuur binnen /var/www voor de jouw_domein-website, waarbij /usr/share/nginx/html intact blijft als de standaardmap die wordt geserveerd als een clientverzoek niet overeenkomt met andere sites.

Maak de map voor jouw_domein als volgt aan, met de -p-vlag om eventuele benodigde bovenliggende mappen te maken:

  1. sudo mkdir -p /var/www/your_domain/html

Volgende stap is het toewijzen van eigendom van de directory met de $USER omgevingsvariabele, die zou moeten verwijzen naar uw huidige systeemgebruiker:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

Nu gaat u een voorbeeld index.html-pagina aanmaken om de serverblokconfiguratie te testen. De standaardteksteditor bij Rocky Linux 9 is vi. vi is een zeer krachtige teksteditor, maar kan enigszins ingewikkeld zijn voor gebruikers zonder ervaring ermee. U kunt overwegen een gebruiksvriendelijkere editor zoals nano te installeren om het bewerken van configuratiebestanden op uw Rocky Linux 9-server te vergemakkelijken:

  1. sudo dnf install nano

Maak vervolgens een voorbeeld index.html-pagina met behulp van nano of uw favoriete editor:

  1. nano /var/www/your_domain/html/index.html

Voeg binnenin de volgende HTML-code toe:

/var/www/your_domain/html/index.html
<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 u klaar bent. Als u nano gebruikt, kunt u opslaan en afsluiten door op CTRL + X te drukken, dan wanneer gevraagd, Y en vervolgens Enter.

Om Nginx in staat te stellen deze inhoud te serveren, moet u een serverblok maken met richtlijnen die naar uw aangepaste webroot verwijzen. Maak een nieuw serverblok aan op /etc/nginx/conf.d/uw_domein.conf:

  1. sudo nano /etc/nginx/conf.d/your_domain.conf

Plak het volgende configuratieblok in:

/etc/nginx/conf.d/your_domain.conf
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 dat we de root-configuratie hebben bijgewerkt naar onze nieuwe directory en de server_name naar onze domeinnaam. Sla het bestand op en sluit het af.

Twee serverblokken zijn nu ingeschakeld en geconfigureerd om te reageren op verzoeken op basis van hun listen– en server_name-instructies (je kunt meer lezen over hoe Nginx deze instructies verwerkt hier):

  • your_domain: Zal reageren op verzoeken voor your_domain en www.your_domain.

  • default: Zal reageren op alle verzoeken op poort 80 die niet overeenkomen met de andere twee blokken.

Volgende stap is om te controleren of er geen syntaxisfouten zijn in een van je Nginx-bestanden, met behulp van nginx -t:

  1. sudo nginx -t

Als er geen problemen zijn, herstart Nginx om je wijzigingen in te schakelen:

  1. sudo systemctl restart nginx

Voordat je de wijzigingen vanuit je browser kunt testen, moet je de beveiligingscontexten van je server SELinux bijwerken, zodat Nginx toestemming heeft om inhoud te serveren vanuit de /var/www/your_domain-directory.

Deze update van de chcon-context zal je aangepaste document root toestaan als HTTP-inhoud te worden geserveerd:

  1. chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

Nginx zou nu je domeinnaam moeten bedienen. Je kunt dit testen door naar http://your_domain te navigeren, waar je iets als dit zou moeten zien:

Conclusie

Nu je je webserver geïnstalleerd hebt, heb je veel opties voor het type inhoud dat je wilt serveren en de technologieën die je wilt gebruiken om een rijkere ervaring te creëren.

Om HTTPS in te stellen voor je domeinnaam met een gratis SSL-certificaat met behulp van Let’s Encrypt, moet je doorgaan naar Hoe Nginx beveiligen met Let’s Encrypt op Rocky Linux 9.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-rocky-linux-9