Hoe NGINX vanuit de bron te bouwen op Ubuntu 24.04/22.04/20.04

Het bouwen van NGINX vanaf de bron op Ubuntu biedt een op maat gemaakte aanpak voor het configureren van uw webserver, waardoor optimale prestaties en compatibiliteit met uw specifieke omgeving worden gegarandeerd. In tegenstelling tot binaire installaties biedt het compileren van NGINX vanuit de broncode de flexibiliteit om specifieke modules in of uit te schakelen, modules van derden te integreren en aangepaste patches toe te passen. Dit proces zorgt voor een dieper inzicht in de interne werking van de server en maakt een veiligere en efficiëntere configuratie mogelijk, afgestemd op uw unieke vereisten.

Belangrijkste hoogtepunten van het bouwen van Nginx:

  • Aangepaste configuratie: Pas NGINX aan uw behoeften aan door alleen de vereiste modules in te schakelen.
  • Verbeterde prestatie: Optimaliseer NGINX voor uw hardware en werklast, waardoor de responstijden en het resourcegebruik mogelijk worden verbeterd.
  • Geavanceerde functies: Krijg toegang tot geavanceerde functies en modules die mogelijk niet beschikbaar zijn in vooraf gecompileerde pakketten.
  • Beveiliging: Pas specifieke patches toe en compileer met beveiligde opties voor een veiligere implementatie.
  • Leermogelijkheid: Verkrijg diepgaande kennis van de architectuur en configuratieopties van NGINX.
  • Controle: Behoud de volledige controle over de instellingen van de server, inclusief mappaden en configuratiebestanden.
  • Actueel: Bouw de nieuwste versie van NGINX en krijg toegang tot nieuwe functies en bugfixes voordat pakketten worden uitgebracht.
  • Maatschappelijke hulp: Maak gebruik van de uitgebreide kennis en middelen van de open-sourcegemeenschap voor probleemoplossing en verbeteringen.

Met deze voordelen in gedachten is het bouwen van NGINX vanuit een bron een krachtige aanpak voor diegenen die maximale controle en efficiëntie van hun webserver zoeken.

Laten we eens kijken naar de gedetailleerde stappen om NGINX vanaf de broncode op Ubuntu te bouwen.

Installeer initiële pakketten voor NGINX Source op Ubuntu

Update Ubuntu voordat u NGINX bouwt

Om de NGINX-broninstallatie op Ubuntu te starten, begint u met het updaten en upgraden van uw systeem. Deze stap zorgt ervoor dat alle pakketten van uw systeem actueel zijn, waardoor potentiële compatibiliteitsproblemen worden geminimaliseerd.

Voer de volgende opdracht uit in uw terminal om uw systeem bij te werken en te upgraden:

sudo apt update && sudo apt upgrade

Afhankelijkheden voor NGINX-compilatie installeren

Als uw systeem up-to-date is, bestaat de volgende stap uit het installeren van de noodzakelijke afhankelijkheden voor NGINX-compilatie. Deze pakketten, zoals compilers en bibliotheken, zijn cruciaal voor het bouwen van NGINX vanaf de broncode.

Voer de volgende opdracht uit om de vereiste afhankelijkheden te installeren:

sudo apt install build-essential libpcre3-dev libssl-dev zlib1g-dev libgd-dev

De opdracht installeert verschillende cruciale pakketten, die elk een specifieke rol vervullen in het NGINX-compilatieproces:

  • build-essential: Bevat de GCC-compiler en gerelateerde tools, die onmisbaar zijn voor het compileren van software vanaf de bron.
  • libpcre3-dev: Biedt bibliotheken voor ondersteuning voor Perl 5-compatibele reguliere expressies, cruciaal voor het herschrijven van URL's en andere NGINX-functionaliteiten.
  • libssl-dev: Biedt bibliotheken voor SSL/TLS-ondersteuning, waardoor veilige gegevensoverdracht wordt gegarandeerd, een belangrijk aspect van moderne webservices.
  • zlib1g-dev: Dit pakket is essentieel voor compressiefunctionaliteiten en helpt de prestaties en snelheid van NGINX te verbeteren.
  • libgd-dev: Ondersteunt beeldverwerkingsmogelijkheden, waardoor NGINX beeldmanipulaties rechtstreeks kan uitvoeren.

Download NGINX-broncode op Ubuntu

De NGINX-versie selecteren

Nadat u de vereiste afhankelijkheden hebt geïnstalleerd, gaat u verder met het downloaden van de NGINX-broncode. Bezoek de NGINX-website om de versie te selecteren die bij uw behoeften past. U kunt kiezen uit de hoofdversie, de stabiele versie of een specifieke versie. Mainline-versies worden regelmatig bijgewerkt met de nieuwste functies en verbeteringen, terwijl stabiele versies zich richten op goed geteste stabiliteit voor productieomgevingen.

De broncode downloaden

Naar download de geselecteerde versie van NGINX, gebruik de wget commando. Met deze opdracht kunt u bestanden rechtstreeks van internet naar uw server downloaden. Als u bijvoorbeeld de hoofdversie 1.23.3 wilt downloaden, gebruikt u de volgende opdracht:

wget http://nginx.org/download/nginx-x.x.x.tar.gz

Opmerking: Vervang het versienummer door de nieuwste of voorkeursversie die u wilt installeren. Controleer altijd de NGINX-website voor de nieuwste versies om te profiteren van de nieuwste functies en beveiligingsupdates. Houd er rekening mee dat de hoofdversies elke paar maanden kunnen worden bijgewerkt. Op de hoogte blijven van de nieuwste releases is dus van cruciaal belang voor het behoud van een veilige en efficiënte serveromgeving.

Pak de NGINX-broncode uit

De NGINX-tarball uitpakken

Nadat u de NGINX-broncode heeft gedownload, is de volgende stap het extraheren van de bestanden uit de tarball. Dit proces omvat het decomprimeren van het tar.gz-bestand om toegang te krijgen tot de NGINX-broncode. Gebruik de tar commando met de juiste vlaggen om de inhoud te extraheren.

Hier ziet u hoe u het doet, met onze voorbeeldversie, NGINX 1.23.3:

tar -xzvf nginx-1.23.3.tar.gz

Deze opdracht is als volgt onderverdeeld:

  • x: Pak de bestanden uit.
  • z: Decomprimeer het archief met gzip.
  • v: Uitgebreide modus om het extractieproces weer te geven.
  • f: Geef de bestandsnaam van het archief op.

Overschakelen naar de NGINX-directory

Na het uitpakken van de bestanden moet u naar de map gaan waar de NGINX-bron is uitgepakt. Deze stap is cruciaal voor het starten van het compilatieproces.

Gebruik de cd opdracht om naar de uitgepakte NGINX-map te gaan:

cd nginx-1.23.3

Configureer bouwopties voor NGINX op Ubuntu

Configuratieopties instellen

Wanneer u zich voorbereidt op het bouwen van NGINX vanaf de broncode, wordt de installatie afgestemd op uw specifieke behoeften door uw bouwopties te configureren. Maak gebruik van de ./configure commando om paden in te stellen en verschillende modules in te schakelen. Hier is een opdracht die algemene configuratieopties en paden bevat:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

Deze opdracht stelt verschillende paden in voor NGINX-bestanden en bevat modules die de functionaliteit van NGINX verbeteren, zoals SSL-ondersteuning en HTTP/2-verwerking.

Uw NGINX-build aanpassen

Wanneer u uw NGINX-build aanpast, wordt de ./configure script is een krachtig hulpmiddel dat uitgebreide aanpassingen mogelijk maakt. Zo kunt u uw NGINX-installatie aanpassen aan specifieke vereisten:

Voorbeeldconfiguraties

Om HTTP/2-ondersteuning in te schakelen en de PCRE-bibliotheek te integreren, wat cruciaal is voor het verwerken van reguliere expressies in NGINX, gebruikt u de volgende configuratie:

./configure --with-http_v2_module --with-pcre

Als u de installatiemap voor NGINX moet definiëren, kunt u deze instellen met behulp van de --prefix keuze. Om bijvoorbeeld NGINX te installeren in het /usr/local/nginx directory, zou het commando zijn:

./configure --prefix=/usr/local/nginx

Voor het opnemen van extra modules zoals ngx_cache_purge, de --add-module optie speelt een rol. Om deze module op te nemen, zou de configuratie er als volgt uitzien:

./configure --add-module=/path/to/ngx_cache_purge

Het toevoegen van extra bibliotheken zoals libxslt of libssl is eenvoudig met de --with-XXX-module keuze. Om deze bibliotheken op te nemen, zouden de respectieve opdrachten zijn:

./configure --with-libxslt-module
./configure --with-openssl=/path/to/openssl

Om modules zoals SSL en de echte IP-module te activeren, zouden de configuratieopdrachten zijn:

./configure --with-http_ssl_module
./configure --with-http_realip_module

Deze configuraties demonstreren slechts enkele manieren waarop u de ./configure script om uw NGINX-build aan te passen.

Voor een uitgebreide lijst met alle beschikbare opties kunt u rennen ./configure --help. Deze opdracht biedt gedetailleerde informatie over alle vlaggen en opties die u kunt gebruiken om uw NGINX-installatie te optimaliseren.

Begin met het laatste proces voor het compileren van NGINX

NGINX compileren

Nadat u de configuratieopties voor NGINX hebt ingesteld, start u het compilatieproces met de make commando. Deze opdracht compileert de NGINX-broncode op basis van de parameters die zijn gedefinieerd in de ./configure script. Het compilatieproces resulteert in de creatie van het binaire uitvoerbare bestand NGINX, dat doorgaans te vinden is in de objs map.

make

NGINX installeren

Na het compileren van NGINX gaat u verder met de installatie met behulp van sudo make install. Met deze opdracht installeert u het binaire NGINX-bestand, de configuratiebestanden en aanvullende benodigde bestanden op het opgegeven voorvoegselpad. Als u tijdens de configuratie geen andere locatie hebt gedefinieerd, wordt NGINX geïnstalleerd /usr/local/nginx/ standaard.

sudo make install

Na de installatie vindt u NGINX in de sbin directory binnen het aangewezen prefixpad, klaar voor verdere configuratie en gebruik.

Maak NGINX SystemD-service

Na het succesvol bouwen en installeren van NGINX vanaf de bron, is de volgende stap het beheren van NGINX als een service met behulp van systemd. Hiermee kunt u NGINX starten, stoppen en opnieuw opstarten zoals elke andere Ubuntu-service.

Een SystemD-servicebestand maken voor NGINX

Om een ​​systemd-service voor NGINX in te stellen, begint u met het maken van een nieuw servicebestand:

sudo nano /etc/systemd/system/nginx.service

Voer in dit bestand de volgende gegevens in en zorg ervoor dat u replacement /path/to/nginx met het daadwerkelijke pad naar uw NGINX binaire bestand als dit zich niet bevindt op /usr/sbin/nginx:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
        
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
        
[Install]
WantedBy=multi-user.target

Deze configuratie stelt NGINX in als een service, definieert hoe het moet starten, stoppen en herladen, en zorgt ervoor dat het wordt gestart nadat het netwerk online is.

SystemD opnieuw laden om de nieuwe service te herkennen

Nadat u de service hebt gedefinieerd, updatet u systemd om uw nieuwe NGINX-service te herkennen:

sudo systemctl daemon-reload

NGINX-service starten en inschakelen

Start de NGINX-service terwijl de systemd-service is geïnstalleerd:

sudo systemctl start nginx

Om ervoor te zorgen dat NGINX automatisch start bij het opstarten, schakelt u de service in:

sudo systemctl enable nginx

Controleer de NGINX-installatie

NGINX-functionaliteit testen

Na het installeren van NGINX is het van cruciaal belang om de werking ervan te verifiëren. U kunt via een webbrowser toegang krijgen tot de NGINX-welkomstpagina. Gebruik het lokale hostadres of IP-adres van uw server om naar de NGINX-testpagina te navigeren.

Open uw webbrowser en voer de volgende URL in om toegang te krijgen tot de NGINX-welkomstpagina met behulp van de localhost:

http://localhost

IP-adres gebruiken voor verificatie

Als bij toegang tot de localhost de NGINX-welkomstpagina niet wordt weergegeven, kunt u in plaats daarvan het IP-adres van uw server gebruiken. Vervangen 192.128.1.1 met uw werkelijke server-IP-adres:

http://192.128.1.1

Wanneer u deze URL's bezoekt, zou u de standaard NGINX-welkomstpagina moeten zien, die aangeeft dat NGINX correct is geïnstalleerd en correct werkt op uw Ubuntu-server. Als de pagina niet verschijnt, zorg er dan voor dat NGINX actief is en dat er geen firewallregels de toegang tot de service blokkeren.

Aanvullende tips voor het bouwen van NGINX

NGINX compileren met aanvullende modules

Verbeter de mogelijkheden van NGINX door extra modules op te nemen tijdens het compilatieproces. Als u bijvoorbeeld de NGINX HTTP-pushmodule wilt toevoegen, gebruikt u de --add-module vlag tijdens de configuratiestap. Volg deze opdrachten om NGINX te compileren met de HTTP-pushmodule:

./configure --add-module=/path/to/nginx-http-push-module
make
sudo make install

Vervangen /path/to/nginx-http-push-module met het daadwerkelijke pad naar de module die u wilt opnemen.

NGINX beheren met Systemctl-opdrachten

Op Ubuntu is het beheer van de NGINX-service eenvoudig met systemctl-opdrachten. U kunt als volgt de NGINX-service bedienen met behulp van de terminal:

NGINX starten:

sudo systemctl start nginx

NGINX stoppen:

sudo systemctl stop nginx

Start NGINX opnieuw:

sudo systemctl restart nginx

NGINX opnieuw laden:

sudo systemctl reload nginx

NGINX-statuscontrole

sudo systemctl status nginx

Schakel NGINX in bij systeemstart

sudo systemctl enable nginx

Schakel NGINX uit bij het opstarten van het systeem:

sudo systemctl disable nginx

Conclusie

In deze handleiding hebben we besproken hoe NGINX vanaf de broncode op Ubuntu 24.04, 22.04 en 20.04 kan worden gebouwd, van het installeren van pakketten tot het beheren van de service. Met dit proces kunt u NGINX aanpassen met extra modules en besturen met systemctl. Houd uw NGINX up-to-date en correct geconfigureerd voor de beste prestaties en beveiliging. Experimenteer met de instellingen en geniet van uw NGINX-server op Ubuntu.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)