Hur man bygger NGINX från källan på Ubuntu 24.04/22.04/20.04

Att bygga NGINX från källan på Ubuntu erbjuder ett skräddarsytt tillvägagångssätt för att konfigurera din webbserver, vilket säkerställer optimal prestanda och kompatibilitet med din specifika miljö. Till skillnad från binära installationer ger kompilering av NGINX från källan flexibiliteten att aktivera eller inaktivera specifika moduler, integrera tredjepartsmoduler och tillämpa anpassade patchar. Denna process möjliggör en djupare förståelse av serverns inre funktion och underlättar en säkrare och effektivare konfiguration skräddarsydd efter dina unika krav.

Viktiga höjdpunkter i att bygga Nginx:

  • Anpassad konfiguration: Skräddarsy NGINX för att möta dina behov genom att endast aktivera de nödvändiga modulerna.
  • Förbättrad prestanda: Optimera NGINX för din hårdvara och arbetsbelastning, vilket potentiellt förbättrar svarstider och resursanvändning.
  • Avancerade funktioner: Få tillgång till banbrytande funktioner och moduler som kanske inte är tillgängliga i förkompilerade paket.
  • Säkerhet: Applicera specifika patchar och kompilera med säkerhetshärdade alternativ för en säkrare distribution.
  • Inlärningsmöjlighet: Få djupgående kunskaper om NGINX:s arkitektur och konfigurationsalternativ.
  • Kontrollera: Behåll full kontroll över serverns inställningar, inklusive katalogsökvägar och konfigurationsfiler.
  • Aktuell: Bygg den senaste versionen av NGINX, få tillgång till nya funktioner och buggfixar före paketsläpp.
  • Community Support: Utnyttja den omfattande kunskapen och resurserna i open source-gemenskapen för felsökning och förbättringar.

Med dessa fördelar i åtanke är att bygga NGINX från en källa ett kraftfullt tillvägagångssätt för de som söker maximal kontroll och effektivitet från sin webbserver.

Låt oss dyka in i de detaljerade stegen för att bygga NGINX från källkod på Ubuntu.

Installera initiala paket för NGINX Source på Ubuntu

Uppdatera Ubuntu innan du bygger NGINX

För att starta NGINX-källinstallationen på Ubuntu, börja med att uppdatera och uppgradera ditt system. Detta steg säkerställer att alla ditt systems paket är aktuella, vilket minimerar potentiella kompatibilitetsproblem.

Utför följande kommando i din terminal för att uppdatera och uppgradera ditt system:

sudo apt update && sudo apt upgrade

Installera beroenden för NGINX-kompilering

Med ditt system uppdaterat innebär nästa steg att installera nödvändiga beroenden för NGINX-kompilering. Dessa paket, såsom kompilatorer och bibliotek, är avgörande för att bygga NGINX från källkod.

För att installera de nödvändiga beroenden, kör följande kommando:

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

Kommandot installerar flera viktiga paket, som vart och ett tjänar en specifik roll i NGINX-kompileringsprocessen:

  • build-essential: Inkluderar GCC-kompilatorn och relaterade verktyg, som är oumbärliga för att kompilera programvara från källan.
  • libpcre3-dev: Tillhandahåller bibliotek för stöd för Perl 5-kompatibla reguljära uttryck, avgörande för URL-omskrivning och andra NGINX-funktioner.
  • libssl-dev: Erbjuder bibliotek för SSL/TLS-stöd, vilket säkerställer säker dataöverföring, en nyckelaspekt av moderna webbtjänster.
  • zlib1g-dev: Detta paket är väsentligt för komprimeringsfunktioner och hjälper till att förbättra NGINX:s prestanda och hastighet.
  • libgd-dev: Stöder bildbehandlingsfunktioner, vilket gör att NGINX kan utföra bildmanipulationer direkt.

Ladda ner NGINX källkod på Ubuntu

Välja NGINX-versionen

Efter att ha installerat de nödvändiga beroenden, fortsätt att ladda ner NGINX-källkoden. Besök NGINX webbplats för att välja den version som passar dina behov. Du kan välja mellan mainline, stabil eller någon specifik version. Mainline-versioner uppdateras regelbundet med de senaste funktionerna och förbättringarna, medan stabila versioner fokuserar på väl beprövad stabilitet för produktionsmiljöer.

Ladda ner källkoden

Till ladda ner den valda versionen av NGINX, Använd wget kommando. Detta kommando låter dig ladda ner filer direkt från internet till din server. Till exempel, för att ladda ner mainline version 1.23.3 som ett exempel, använd följande kommando:

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

Notera: Ersätt versionsnumret med den senaste eller föredragna versionen du vill installera. Kontrollera alltid NGINX-webbplatsen för de senaste versionerna för att dra nytta av de senaste funktionerna och säkerhetsuppdateringarna. Kom ihåg att mainline-versioner kan uppdateras med några månaders mellanrum, så att hålla sig informerad om de senaste utgåvorna är avgörande för att upprätthålla en säker och effektiv servermiljö.

Extrahera NGINX källkod

Packar upp NGINX Tarball

När du har laddat ner NGINX-källkoden är nästa steg att extrahera filerna från tarballen. Denna process involverar dekomprimering av filen tar.gz för att komma åt NGINX-källkoden. Använd tar kommandot med lämpliga flaggor för att extrahera innehållet.

Så här gör du, med vår exempelversion, NGINX 1.23.3:

tar -xzvf nginx-1.23.3.tar.gz

Detta kommando delas upp enligt följande:

  • x: Extrahera filerna.
  • z: Packa upp arkivet med gzip.
  • v: Utförligt läge för att visa extraktionsprocessen.
  • f: Ange filnamnet för arkivet.

Byter till NGINX-katalogen

Efter att ha extraherat filerna måste du byta till katalogen där NGINX-källan har packats upp. Detta steg är avgörande för att påbörja kompileringsprocessen.

Använd cd kommando för att flytta till den extraherade NGINX-katalogen:

cd nginx-1.23.3

Konfigurera byggalternativ för NGINX på Ubuntu

Ställa in konfigurationsalternativ

När du förbereder dig för att bygga NGINX från källan, skräddarsyr konfigurationen av dina byggalternativ installationen efter dina specifika behov. Använd ./configure kommando för att ställa in sökvägar och aktivera olika moduler. Här är ett kommando som innehåller vanliga konfigurationsalternativ och sökvägar:

./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

Detta kommando ställer in olika sökvägar för NGINX-filer och inkluderar moduler som förbättrar NGINX:s funktionalitet, som SSL-stöd och HTTP/2-behandling.

Anpassa din NGINX-byggnad

När du anpassar ditt NGINX-bygge, ./configure script är ett kraftfullt verktyg som möjliggör omfattande anpassning. Så här kan du skräddarsy din NGINX-installation för att möta specifika krav:

Exempelkonfigurationer

För att aktivera HTTP/2-stöd och integrera PCRE-biblioteket, vilket är avgörande för att bearbeta reguljära uttryck i NGINX, använd följande konfiguration:

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

Om du behöver definiera installationskatalogen för NGINX kan du ställa in den med hjälp av --prefix alternativ. Till exempel för att installera NGINX i /usr/local/nginx katalogen skulle kommandot vara:

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

För att införliva ytterligare moduler som ngx_cache_purge, den --add-module alternativet spelar in. För att inkludera denna modul skulle konfigurationen se ut så här:

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

Att inkludera extra bibliotek som libxslt eller libssl är enkelt med --with-XXX-module alternativ. För att inkludera dessa bibliotek skulle respektive kommandon vara:

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

För att aktivera moduler som SSL och den riktiga IP-modulen skulle konfigurationskommandona vara:

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

Dessa konfigurationer visar bara några få sätt du kan använda ./configure skript för att anpassa din NGINX-build.

För en omfattande lista över alla tillgängliga alternativ kan du köra ./configure --help. Detta kommando ger detaljerad information om alla flaggor och alternativ du kan använda för att optimera din NGINX-installation.

Börja den sista processen för att kompilera NGINX

Kompilerar NGINX

När du har ställt in konfigurationsalternativen för NGINX, initiera kompileringsprocessen med make kommando. Detta kommando kompilerar NGINX-källkoden baserat på parametrarna som definieras i ./configure manus. Kompileringsprocessen resulterar i skapandet av den binära körbara NGINX-filen, som vanligtvis finns i objs katalog.

make

Installerar NGINX

Efter att ha kompilerat NGINX, fortsätt med installationen med hjälp av sudo make install. Detta kommando installerar NGINX-binären, konfigurationsfilerna och ytterligare nödvändiga filer till den angivna prefixsökvägen. Om du inte har definierat en annan plats under konfigurationen, installeras NGINX till /usr/local/nginx/ som standard.

sudo make install

Efter installationen hittar du NGINX i sbin katalogen inom den angivna prefixsökvägen, redo för vidare konfiguration och användning.

Skapa NGINX SystemD Service

Efter att ha lyckats bygga och installera NGINX från källan är nästa steg att hantera NGINX som en tjänst med systemd. Detta gör att du kan starta, stoppa och starta om NGINX som vilken annan Ubuntu-tjänst som helst.

Skapa en SystemD-tjänstfil för NGINX

För att ställa in en systemd-tjänst för NGINX, börja med att skapa en ny tjänstfil:

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

I den här filen, mata in följande detaljer, och se till att du ersätter /path/to/nginx med den faktiska sökvägen till din NGINX-binär om den inte finns på /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

Denna konfiguration ställer in NGINX som en tjänst, definierar hur den ska starta, stoppa och ladda om, och säkerställer att den startar efter att nätverket är online.

Laddar om SystemD för att känna igen den nya tjänsten

När du har definierat tjänsten, uppdatera systemd för att känna igen din nya NGINX-tjänst:

sudo systemctl daemon-reload

Starta och aktivera NGINX Service

Med systemd-tjänsten på plats, starta NGINX-tjänsten:

sudo systemctl start nginx

För att säkerställa att NGINX startar automatiskt vid uppstart, aktivera tjänsten:

sudo systemctl enable nginx

Verifiera NGINX-installationen

Testar NGINX-funktionalitet

Efter installation av NGINX är det viktigt att verifiera dess funktion. Du kan komma åt NGINX välkomstsida via en webbläsare. Använd din servers lokala värdadress eller IP-adress för att navigera till NGINX-testsidan.

Öppna din webbläsare och ange följande URL för att komma åt NGINX välkomstsida med hjälp av den lokala värddatorn:

http://localhost

Använda IP-adress för verifiering

Om åtkomst till den lokala värden inte visar NGINX-välkomstsidan kan du använda din servers IP-adress istället. Byta ut 192.128.1.1 med din faktiska server-IP-adress:

http://192.128.1.1

När du kommer åt dessa webbadresser bör du se NGINX-standardens välkomstsida, vilket indikerar att NGINX är installerat och körs korrekt på din Ubuntu-server. Om sidan inte visas, se till att NGINX körs och att inga brandväggsregler blockerar åtkomst till tjänsten.

Ytterligare tips för att bygga NGINX

Kompilera NGINX med ytterligare moduler

Förbättra NGINX:s kapacitet genom att inkludera extra moduler under kompileringsprocessen. Till exempel, om du vill lägga till NGINX HTTP push-modulen, använd --add-module flagga under konfigurationssteget. Följ dessa kommandon för att kompilera NGINX med HTTP push-modulen:

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

Byta ut /path/to/nginx-http-push-module med den faktiska sökvägen till den modul du vill inkludera.

Hantera NGINX med Systemctl-kommandon

På Ubuntu är hanteringen av NGINX-tjänsten enkel med systemctl-kommandon. Så här styr du NGINX-tjänsten med hjälp av terminalen:

Starta NGINX:

sudo systemctl start nginx

Stoppa NGINX:

sudo systemctl stop nginx

Starta om NGINX:

sudo systemctl restart nginx

Ladda om NGINX:

sudo systemctl reload nginx

NGINX-statuskontroll

sudo systemctl status nginx

Aktivera NGINX på systemstart

sudo systemctl enable nginx

Inaktivera NGINX på systemstart:

sudo systemctl disable nginx

Slutsats

I den här guiden tog vi upp hur man bygger NGINX från källkod på Ubuntu 24.04, 22.04 och 20.04, från att installera paket till att hantera tjänsten. Denna process låter dig anpassa NGINX med extra moduler och styra den med systemctl. Håll din NGINX uppdaterad och korrekt konfigurerad för bästa prestanda och säkerhet. Experimentera med inställningarna och njut av din NGINX-server på Ubuntu.

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)