Hoe NGINX op Mac instellen voor testdoeleinden

Heb je de website die je aan het ontwikkelen bent nodig om te testen, maar heb je alleen je Mac om mee te werken? Je hoeft geen aparte server of virtuele machine te bouwen alleen om je website te testen. Een snelle optie is NGINX installeren op Mac, en je zou een webserver moeten hebben die rechtstreeks op je computer draait.

Blijf bij ons en leer hoe je NGINX op Mac installeert en configureert. Je leert een paar verschillende manieren om NGINX te installeren, zodat je kunt kiezen welke methode voor jou werkt. Je leert ook de basisconfiguratie-items om je te helpen met het starten van de tests.

Vereisten

Deze tutorial zal een praktische demonstratie zijn. Als je wilt volgen, zorg er dan voor dat je het volgende hebt:

NGINX installeren op Mac

Er zijn twee methoden om NGINX op Mac te installeren – door de bron te compileren of met een pakketbeheerder. Maar één installatiemethode is niet beter dan de andere. Welke methode u kiest, hangt af van uw eisen.

In de volgende secties leert u hoe u beide installatiemethoden voor NGINX kunt uitvoeren.

Methode 1: Compileren en installeren vanuit de bron

NGINX compileren en installeren vanuit de bron geeft u de flexibiliteit om modules of beveiligingspatches op te nemen in uw NGINX-installatie. U kunt bijvoorbeeld NGINX compileren om de Real-Time Messaging Protocol (RTMP) module op te nemen als u een streaming server instelt.

Aanpassingsvermogen vereist meer stappen en omvat handmatige installatie van afhankelijkheden. Volg deze stappen om NGINX op Mac vanuit de bron te installeren.

1. Open een terminal op je Mac.

2. Voer de onderstaande opdracht uit om een werkmap onder je thuismap aan te maken. Deze map bevat alle bronbestanden die je nodig hebt voor de installatie van NGINX.

# Maak een map met bronnen aan onder je thuismap
mkdir ~/src && cd ~/src

3. Voer vervolgens de onderstaande commando’s uit om de nieuwste Perl Compatible Regular Expressions (PCRE) te downloaden (curl) en uit te pakken (tar). De NGINX Core en Rewrite modules vereisen PCRE. De nieuwste versie van PCRE op het moment van schrijven is 8.45.

# Download en pak de PCRE-bron uit
curl -OL https://ftp.exim.org/pub/pcre/pcre-8.45.tar.gz
tar -xf pcre-8.45.tar.gz && rm pcre-8.45.tar.gz

4. Voer elk van de onderstaande commando’s uit om de bron van OpenSSL te downloaden (curl) en SSL-ondersteuning toe te voegen. Deze toevoeging is een voorbeeld van het aanpassen van de NGINX-build. De nieuwste versie van OpenSSL op het moment van schrijven is 1.1.1m.

# Download en pak de bronbestanden van OpenSSL uit
curl -OL http://www.openssl.org/source/openssl-1.1.1m.tar.gz
tar -xf openssl-1.1.1m.tar.gz && rm openssl-1.1.1m.tar.gz

5. Na het downloaden van de vereisten, voer je de onderstaande commando’s uit om de NGINX-bron te downloaden (curl) en uit te pakken (tar). De nieuwste stabiele versie op het moment van schrijven is 1.20.2.

# Download en pak de NGINX-bronbestanden uit
curl -OL http://nginx.org/download/nginx-1.20.2.tar.gz
tar -xf nginx-1.20.2.tar.gz && rm nginx-1.20.2.tar.gz
# Lijst de bestanden/mappen op in de werkmap
ls -l

Op dit punt zou je nu in totaal drie nieuwe mappen moeten hebben, zoals hieronder weergegeven.

Listing the source folders

6. Voer nu de onderstaande commando’s uit om NGINX te compileren (make) en te installeren.

# Ga naar de NGINX-bronmap
cd nginx-1.20.2

# Maak de NGINX-configuratie aan
## Parameters:
## --with-pcre=../pcre-8.45/ : Geeft de locatie van de PCRE-bron aan
## --with-http_ssl_module : Schakelt de HTTPS-ondersteuning in
## --with-openssl=../openssl-1.1.1m/ : Geeft de OpenSSL-bron aan. Vereist door de http_ssl_module
./configure --with-pcre=../pcre-8.45/ --with-http_ssl_module --with-openssl=../openssl-1.1.1m/

# Compileer NGINX
make
# Installeer NGINX
sudo make install

7. Voer vervolgens het onderstaande commando uit om het pad van NGINX toe te voegen aan het systeem $PATH door het volledige pad /usr/local/nginx toe te voegen aan /etc/paths. Na deze stap kun je nginx-commando’s uitvoeren zonder het volledige pad te specificeren.

# Voeg NGINX toe aan het /etc/paths bestand
echo /usr/local/nginx/sbin | sudo tee -a /etc/paths

8. Sluit de terminal af door op CMD+Q te drukken en open een nieuwe terminalsessie om de nieuwe $PATHS toe te passen.

9. Voer de onderstaande nginx opdracht uit om NGINX te starten, aangezien de NGINX-server niet automatisch start na de installatie.

sudo nginx

10. Bevestig tot slot dat NGINX actief is. Open een webbrowser en voer het adres HTTP://localhost in. Je zou de standaard welkomstboodschap van NGINX moeten zien, vergelijkbaar met de onderstaande.

Het installeren van NGINX vanaf broncode stelt de standaard luisterpoort in op 80.

Accessing the NGINX default web page

Omdat je NGINX op Mac vanuit broncode hebt geïnstalleerd als root, moet je voortaan elk nginx commando voorafgaan met sudo.

Methode 2: NGINX installeren met Homebrew

NGINX installeren met Homebrew is handiger en minder foutgevoelig. Deze methode installeert afhankelijkheden automatisch. Als je de NGINX-installatie niet hoeft aan te passen, is deze methode de snelste optie en vereist slechts één commando om te installeren!

Om NGINX op Mac te installeren met Homebrew, volg je deze stappen.

1. Open een nieuwe terminalsessie.

2. Voer de onderstaande brew opdracht uit om NGINX te installeren.

brew install nginx

Kun je NGINX als root installeren met Homebrew? – Nee (niet officieel). Het brew install commando weigert uitgevoerd te worden met het sudo voorvoegsel. Als je het probeert, krijg je het onderstaande foutbericht.

“Er” of: Het uitvoeren van Homebrew als root is extreem gevaarlijk en wordt niet langer ondersteund. Omdat Homebrew geen privileges laat vallen bij installatie, zou je alle build scripts volledige toegang tot je systeem geven.”

3. Na installatie, roep de onderstaande opdracht aan om NGINX te starten. Deze opdracht draait NGINX als een achtergronddaemon.

Standaard installeert Homebrew NGINX in /usr/local/Cellar/nginx/<versie> en creëert symbolische koppelingen in /usr/local/opt/. Het NGINX-binair heeft een symbolische koppeling in /usr/local/bin en deze map is al opgenomen in de $PATH.

nginx

Om NGINX zonder achtergrondservice uit te voeren, gebruik in plaats daarvan de onderstaande opdracht. Deze opdracht geeft een wereldwijde instructie om nginx niet als een daemon uit te voeren.

nginx -g “da” mon off;”

Je kunt NGINX stoppen door CTRL+C in te drukken in de terminal in deze modus.

4. Roep ten slotte de curl-opdracht hieronder aan om te bevestigen dat NGINX nu actief is.

Het installeren van NGINX via Homebrew stelt de standaard luisterpoort in op 8080. Deze standaard toewijzing van de poort zorgt ervoor dat je nginx zonder sudo kunt uitvoeren.

curl HTTP://localhost:8080

Zoals je hieronder kunt zien, heeft de curl-opdracht de standaard NGINX-webpagina gedownload, wat aangeeft dat de server actief is.

Testing NGINX with curl

NGINX instellen voor testen

Tot nu toe heb je NGINX geïnstalleerd, maar het werkt nog steeds met de standaardinstellingen. Er zijn een paar fundamentele wijzigingen die je misschien wilt overwegen voordat je je website gaat testen.

Wil je dat NGINX automatisch start bij het opstarten van de computer? Waar ga je de bestanden voor de website die je aan het testen bent opslaan? Moet je de standaard luisterpoorttoewijzing behouden?

Dit zijn enkele van de zaken die je moet configureren nadat je NGINX hebt geïnstalleerd, waarover je in de volgende secties zult leren.

De volgende secties tonen de stappen voor het configureren van NGINX-bestanden die zijn geïnstalleerd via Homebrew, tenzij de instructies expliciet anders aangeven.

Aanpassen van de Server Luisterpoort

Afhankelijk van de installatiemethode is de standaard luisterpoort meestal 80 of 8080. Poort 8080 is doorgaans acceptabel voor testen en ontwikkeling. Maar je wilt mogelijk toch het poortnummer wijzigen, bijvoorbeeld vanwege conflicten met andere services, of gewoon omdat je dat wilt.

Wat je reden ook is, volg de onderstaande stappen om de standaard luisterpoort van NGINX te wijzigen.

1. Voer eerst het onderstaande commando uit om het stopsignaal (-s stop) te verzenden om ervoor te zorgen dat NGNIX niet draait. nginx -s stop

nginx -s stop

2. Voer vervolgens het onderstaande nginx-commando uit om de padnaam van het NGINX-configuratiebestand te achterhalen.

nginx -t

Het onderstaande resultaat toont dat het configuratiebestand zich bevindt op /usr/local/etc/nginx/nginx.conf.

Testing the NGINX configuration file

3. Open het configuratiebestand in je favoriete teksteditor, zoals nano, in het onderstaande voorbeeld.

nano /usr/local/etc/nginx/nginx.conf

4. Zoek nu de regel listen binnen het server {}-blok. Zoals je hieronder kunt zien, is de luisterpoortwaarde 8080.

NGINX listening port number

5. Verander het poortnummer van listen naar een andere unieke poortwaarde, zoals 9000, in dit voorbeeld. Sla de wijziging op en verlaat het bestand.

Changing the listening port number

6. Voer nu opnieuw het nginx-commando hieronder uit om NGINX opnieuw te starten.

nginx

7. Open ten slotte een nieuw browservenster en ga naar HTTP://localhost:9000. NGINX zou nu de website moeten bedienen op poort 9000, zoals hieronder getoond.

NGINX running on port 9000

Wijzen naar uw ontwikkelingswebdirectory

Standaard bedient de installatie van NGINX op Mac de webdirectory vanaf /usr/share/nginx/html (Bron-geïnstalleerd) of /usr/local/Cellar/nginx/<version>/html (Hombrew-geïnstalleerd).

Maar wat als uw websitebestanden ergens anders staan, misschien op een andere schijf? Maak je geen zorgen. Volg de onderstaande stappen om NGINX naar uw ontwikkelingswebdirectory te wijzen.

1. Voer eerst de onderstaande commando’s uit om NGINX te stoppen en het configuratiebestand in de teksteditor te openen, zoals je deed in de sectie “Aanpassen van de luisterpoort van de server” (stappen één tot drie).

# Stop NGINX
nginx -s stop
# Voer een test uit om het configuratiebestand te vinden
nginx -t
# Open het configuratiebestand voor bewerking
nano /usr/local/etc/nginx/nginx.conf

2. Zoek in de teksteditor naar de regel die zegt root html; binnen het server {}-blok.

The default web directory location

3. Bewerk de root-waarde en verander deze naar je aangepaste map. In dit voorbeeld staat de webdirectory op /Volume/DevData/testweb. Sla de wijzigingen op en verlaat de editor.

De testwebsite in dit voorbeeld is een statische website genaamd Dimensions, gedownload van HTML5 Up. Deze voorbeeldwebsite is gratis te downloaden en te gebruiken, onderhevig aan De Creative Commons Naamsvermelding 3.0 Licentie.

Changing the default web directory location

4. Start nu de NGINX-server opnieuw.

nginx

5. Als laatste, open het adres HTTP://localhost:9000 in je webbrowser. NGINX serveert nu je testwebsite vanuit je aangepaste webdirectory zoals te zien is op de onderstaande screenshot.

Testing if NGINX serves a custom web directory location

Het inschakelen van NGINX Autostart voor een installatie op basis van bronnen

NGINX start standaard niet automatisch, ongeacht de gekozen installatiemethode. In ontwikkeling of testen is NGINX autostart mogelijk niet vereist. Maar als je dit wel nodig hebt, kun je NGINX configureren om bij het opstarten uit te voeren met behulp van het launchd-proces.

Je kunt NGINX inschakelen om automatisch te starten, of je nu een installatie op basis van broncode of Homebrew hebt. Maar voor deze demonstratie, begin met de installatie op basis van broncode.

Om NGINX in te schakelen om automatisch te starten bij een installatie op basis van broncode, volg deze stappen.

1. Voer de onderstaande touch-opdracht uit om een nieuw property list (PLIST)-bestand voor NGINX te maken.

De locatie /Library/LaunchDaemons slaat de wereldwijde daemons op die namens de root of een gespecificeerde gebruiker worden uitgevoerd. De bestandsnaam kan alles zijn wat je wilt, maar het zou handig zijn als de bestandsnaam de naam van de daemon bevat die je maakt.

sudo touch /Library/LaunchDaemons/ata.nginx.plist

2. Open nu het PLIST-bestand om te bewerken.

sudo nano /Library/LaunchDaemons/ata.nginx.plist

3. Kopieer de onderstaande code en plak deze in de teksteditor. Sla het bestand op en sluit de editor af.

In het kort definieert de onderstaande code een daemon met de naam ata.nginx. Het programma dat moet worden uitgevoerd, is /usr/local/nginx/sbin/nginx en de waarde RunAtLoad betekent dat het programma wordt gestart tijdens het opstarten van de computer.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>ata.nginx</string>
				<key>Program</key>
				<string>/usr/local/nginx/sbin/nginx</string>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

4. Voer tot slot de onderstaande launchctl-opdracht uit om de daemon te loaden. Met deze opdracht wordt NGINX onmiddellijk gestart. En vanaf dit punt zal NGINX automatisch starten na elke herstart van de computer.

sudo launchctl load -w /Library/LaunchDaemons/ata.nginx.plist

Stel dat je van gedachten verandert en de NGINX automatische start wilt uitschakelen, voer dan het onderstaande commando uit. Dit commando stopt en schakelt de NGINX-daemon automatische start uit.

sudo launchctl unload -w /Library/LaunchDaemons/ata.nginx.plist

Het inschakelen van NGINX Autostart voor een installatie op basis van Homebrew

In tegenstelling tot een installatie op basis van broncode, hoef je voor een installatie van NGINX via Homebrew slechts één commando uit te voeren om het gedrag van de NGINX automatische start in of uit te schakelen. Handig, toch?

Voer het onderstaande commando uit om NGINX te laten automatisch opstarten. Het start-commando start NGINX onmiddellijk en registreert het om bij het opstarten te worden gestart.

sudo brew services start nginx

Na het uitvoeren van het commando krijg je een vergelijkbare uitvoer als in de onderstaande afbeelding.

Starting the NGNIX service

Om de NGINX automatische start uit te schakelen, voer je het onderstaande commando uit. Zoals je kunt zien, is het enige deel van het commando dat moet worden gewijzigd van start naar stop. Dit commando sluit ook de NGINX-server direct op een nette manier af.

sudo brew services stop nginx

Conclusie

Daar heb je het! Het opzetten van NGINX op Mac is een gegarandeerde manier om in een mum van tijd een webserver draaiend te hebben voor testdoeleinden. Je hebt installatieopties op basis van je installatievereisten, en het aanpassen van de instellingen is snel via configuratiebestanden met platte tekst — geen speciale tools zijn nodig.

NGINX beperkt testen en uitvoeren niet tot slechts één website. Je kunt meerdere ontwikkelingsdomeinen en websites tegelijkertijd uitvoeren zonder elkaar te storen. Of als je avontuurlijk bent, zou je ook NGINX in Docker op Mac kunnen uitvoeren!

Source:
https://adamtheautomator.com/nginx-on-mac/