Nginx, Windows, SSL, Reverse Proxy, Cloudflare, HTTP Auth, gratis domän med mera – full guide!

Permalänk
Medlem

Nginx, Windows, SSL, Reverse Proxy, Cloudflare, HTTP Auth, gratis domän med mera – full guide!

Hej alla, har länge funderat på och göra en fullständig och detaljerad guide för hur man får SSL via Let's Encrypt på Windows att fungera, samt härda nginx, och sätta den i Reverse Proxy med Cloudflare som CDN.
Bestämde mig idag för att göra detta och lägga ut den på sweclockers.
Har gått över till unRaid från windows, då jag ville köra mina diskar i en Array istället för JBOD.
Och då passar det bra och skriva ner allt detta utifall jag skulle glömma bort det =P
Samt att jag känner att jag vill dela med mig av min kunskap, och hjälpa andra som inte lyckats få till sin nginx server

Och eftersom de finns folk som använder sig av windows som OS för sin webserver så hoppas jag att folk kommer ha nytta av min guide.
Jag har inte hittat någon online som har i detailj gått igenom hur man gör för att härda sin nginx,
sätta den i reverse proxy å förbättra säkerhet i windows versionen av nginx.

Utan det jag hittade online var, massor av människor som blandar ihop linux och windows config's,
skriver felaktig information, utdaterade video's, och en massa svammel online.
Folk blir förvirrade och kommer inte vidare utan ger upp, eller så får dom inga svar på frågor dom har ang sitt problem :S

Guiden kommer att bestå av.
- Vad för mjukvara ni bör använda er av.
- Färdig konfiguration för reverse proxy till nginx.
- Färdig konfiguration för SSL & auto redirect till https://
- Hur man får tag i och genererar SSL Cert via Let's Encrypt på Windows.
- Hur man registrerar gratis domän, som kopplas till cloudflare CDN.
- Plus lite till

Guide Start:
Har ni dessa program, bra!
Har ni inte det? ladda så fall ner dom.

Ladda ner 7-zip kommer att användas för uppackning. ( välj 64bit )
Ladda ner Notepad++ kommer att användas för config. ( välj 64bit )
Ladda ner Nginx <-- Välj Legacy version nginx/Windows-1.14.2
Ladda ner Let's Encrypt ( PKISharp/win-acme ) (Högre version finns ute, jag föredrar v1.9.12.1)
Ladda ner .NETframworks senaste <--- Direkt länk
Ladda ner Nssm ni ska ha nssm 2.24 (2014-08-31) <--- Direkt länk
Ladda ner Php Här kan ni välja mellan ett par stycken, t.ex Non Thread Safe eller Thread Safe
( ni kan själva läsa vad för skillnad det är mellan dom )
men det jag valde var VC15 x64 Thread Safe (2019-Feb-06 02:14:58)
Ladda ner VC CRT 14 (Visual Studio 2015) om ni inte redan har det. ( krävs för att php 7.x ska fungera )

**Se till att erat Windows är uppdaterat och ni har dom senaste uppdateringarna!**

Mappar i C:

Gå in i C:\
och skapa två mappar där, döp den ena till
nginx, den andra till Letsencrypt
Packa upp nginx-1.14.2.zip och skicka allt innehåll till C:\nginx
Ska se ut så här.

När ni ändå är här inne se till och skapa en mapp som heter php och packa upp allt innehåll från
php-7.3.2-Win32-VC15-x64.zip till php mappen.

Skapa även en mapp som heter www
Det är här ni kommer att ha eran hemsida, istället för html som är default för nginx.
Navigera in till C:\nginx\conf och,
öppna upp nginx.conf i notepad++ och gå ner till rad 44, ändra om från html till www > spara.

Gå tillbaka till C:\
Packa upp win-acme.v1.9.12.1.zip och skicka allt innehåll till C:\Letsencrypt
Ska se ut så här

Packa nu upp nssm-2.24.zip zippa upp antingen win64 eller win32
Navigera sedan till C:\Windows och lägg nssm.exe i C:\Windows
(Jag använde win64 då min VM är 64bit OS)
Ska se ut så här

Tjänster i windows.

Efter att ni lagt nssm.exe i C:\Windows ska vi skapa 2 stycken nya tjänster ( services ) En för nginx och den andra för php

Skriv detta i cmd & sedan i själva nssm som jag gjort

Skriv detta i cmd & sedan i själva nssm som jag gjort

När ni gjort klart och inte fått något fel så ser det ut så här när tjänsterna är klara och fungerar felfritt!

Konfigurera PHP.

Navigera nu in till C:\nginx\php och leta upp filen som heter " php.ini-development " kopiera denna fil, och döp sedan om den till php.ini, windows kommer att fråga om vill ändra om själva filtillägg, svara ja ( file extension på engelska )
Öppna sedan php.ini med notepad++ navigera ner till rad 905 ta bort ; från de rader jag har gjort på bilden nedan.
( ignorera den blå bollen jag la på sidan, jag la till den där så ni inte missar vart ni ska ändra! )

Spara erat php.ini efter ni gjort dessa ändringar.
Det finns mer man kan göra i php.ini men inget ni behöver göra nu.

Alternativt kan ni använda min php.ini file jag laddade upp på min github,
(Den är lite annorlunda än standard, men båda fungerar, upp till er!)
https://github.com/Zidichy/Server/blob/master/nginx/php.ini

Navigera nu till 127.0.0.1 i webläsaren
Fungerar allt så ser de ut så här

Öppna upp portar. (Krävs även att ni har ett publikt IP!)

För att öppna upp port 80 & 443 logga in i eran router och gå port sektionen. (Port Forwarding)
För att hitta vilken adress eran router har, navigera till
Control Panel\Network and Internet\Network and Sharing Center > change adapter settings > Network Connection Details > högerklicka erat nätverk > status > Details > IPv4 Default Gateway
Detta är den adress ni skriver för att komma åt erat router interface.
Jag valde och använda 10.0.0.1 då jag gillar A klass nätverks adress
Men dom flesta brukar ha C klass, 192.168.0.1 / 192.168.1.1

Ni kan även ta fram Cmd och skriva ipconfig.

Lyckas ni ändå inte komma åt router interface så skriv vilken router ni har i kommentarerna så hjälper jag er.
Eller om ni vill ha hjälp med att ställa in port config i router så är det bara och säga till

P.g.a. att de finns så många olika routrar så blir det svårt och visa exakt hur ni skall göra,
men ni kan få se hur min port konfig ser ut.
Jag länkar även till https://portchecker.co/ som kollar om eran port är öppen efter att ni öppnat upp dom i routern.

Nu till domän & SSL.

Gå till dot.tk och skapa domän, ni kan få ha domänen helt gratis mellan 1-12 månader.
Det går bra och förlänga tiden efter att den gått ut om ni så önskar.

Jag registrerade just min temporära domän jasmyn.tk,
den kommer vara inaktiv efter 30 dagar då jag bara valde 1 månad.
Varför jasmyn? Random Name Generator ^^

När ni valt namn och sedan gått vidare kommer ni till checkout, fyll i era uppgifter som jag gjort & klicka på complete order.

Fyll ip de publika IP ni har, klicka sen på continue.

Gå till Cloudflare.com skapa konto och logga in.
Lägg till eran nyskapade domän från .tk > add site > välj sedan " Free " under Select a plan > Confirm plan.

Klicka sedan på DNS efter att cloudflare gjort klart sin scan. Fyll i din domän och ditt IP nummer som jag gjort i bilden nedan.

Vill ni ha www. så lägg till det som en A post ( A Type ) i cloudflare's DNS, jag valde och inte använda www. då det är en subdomän och dom börjar fasas bort från dom flesta site:r då flera hellre vill änvända sig av sin apex

Längre ner under DNS står det Cloudflare Nameservers
kopiera båda NS från cloudflare och gå sedan tillbaka till freenom.com
Navigera sedan till > Services > My Domains > Manage Domain > Management Tools > Nameservers
och lägg till dom som jag gjort i bilden nedan.

Tillbaka till freenom | Navigera till > Services > My Domains > Manage Domain > Manage Freenom DNS | och ta bort IP:t som vi la till i början

När cloudflare är klar så kommer du få mail som ser ut så här

De finns massor av inställningar man behöver ställa in på cloudflare men jag tar det en annan gång
Se dock till att gå till Crypto > och sätt SSL i Full (strict)

Ni kan nu stänga ner freenom.com, då allt sköts från cloudflare.com
& nedan ser ni att cloudflare nu tar hand om ssl på jasmyn.tk

Om ni känner för att köpa en .se domän så rekommenderar jag one.com deras support är väldigt bra,
& jag har själv domän från dom
Men detta är ej reklam för one.com och jag inte är ute efter att ge ut min värvningslänk som man får via one.com för att tjäna pengar. Utan guiden är tänkt för att hjälpa folket med SSL, nginx ect.
Har ni redan domän och vill peeka den från erat webhotell till eran server, så kan jag hjälpa till med det också.

Nu till Let's Encrypt.

Varför generera eget SSL om nu vi har SSL från cloudflare?
Pga plex, tautulli, sonarr, ect dessa program kräver nämligen att man har ett eget SSL Certifikat om man ska få allt att fungera!
Samt att RP inte skulle fungera med SSL utan ett eget certifikat.
Varför inte ta LE innan CF ?
Det finns en anledning till varför.

Navigera till C:\Letsencrypt > starta letsencrypt.exe som administratör
och använd samma alternativ som jag gör i bilden nedan, byt självklart ut min temp domän mot eran FQDN.
Dyker en förfrågan upp ang mail, skriv då in en som ni vill använda. ( man brukar använda admin@xxxx.xx )
Det är upp till er om ni vill sätta in förnyelse som task, jag rekommenderar att ni gör det.
(Krävs dock att man har lösen på sitt windows, och inte direkt inloggning.)

Viktigt att nämna för er är att man behöver lägga till www. som en subdomän när man genererar sitt ssl certifikat om man vill ha www.mydomain.com fungerandes, inte bara i cf som de krävs en A /CNAME post.

När ni genererat erat SSL Cert från Let's Encrypt navigera så som jag gjort i bilden nedan, och verifera att filerna ligger där!

Nginx conf.

Efter att vi nu kommit så här långt, så behöver vi ändra om i configs för nginx.
Gå till zidichy.github
Hämta ner all .conf som finns där, klicka på den gröna knappen ( clone or download ) > välj download zip
När zippen är nere, dra ut allt på skrivbordet.
Mappen site-confs & proxy-confs ska läggas in i C:\nginx\conf
.conf filer från zippen i Server-master\nginx mappen ska ersätta de filer som redan finns i mappen C:\nginx\conf
Öppna > site-confs > domain.conf > editera i notepad++ ändra där det står domain.com till eran domän
Öppna > conf > strongSSL.conf > editera i notepad++ ändra där det står domain.com till eran domän,
ni behöver även # de headers som har " report " i strängen om ni inte går och registrerar er hos report-uri.com
När ni e klar så kan ni testa å köra en nginx -t i cmd, se bild nedan.
Och sedan en nssm restart nginx för att se till så nginx laddar om alla inställningar

Done!

Övrig Info.

Så hur fungerar Reverse Proxy ?

En omvänd proxy tillåter er att komma åt lokala applikationer via internet fastän dom sitter bakom eran lokala brandvägg.
proxy:n vidareskickar själva begäran till den server som själva applikation är kopplad till, och ger er tillgång till applikation via internet. Vi kopplar sedan applikation till nginx som i sin tur använder sig av port 443 som är krypterad med RSA 2048 bit (SHA256withRSA).
Vilket gör att all trafik som går till och från applikation blir krypterad.
Mer info här https://www.cloudflare.com/learning/cdn/glossary/reverse-prox...

Navigera till C:\nginx\proxy-confs\ > här inne ligger färdiga .confs för många tjänster, plex, sonarr, tautulli osv
Eventuellt behöver ni öppna upp port 32400 för plex, om något strular.
Vill ni ha något annat i RP än det som finns i min proxy-confs så får ni skapa en .conf och lägga till korrekt kod.

Det kommer även att komma en video guide där jag gör allt som står i denna guide.
Detta för att underlätta ytterligare för alla som vill ha en grymt säker nginx server med ssl, reverse proxy & CDN!

Hoppas att denna guide hjälpt någon.
Denna guide tog tid å göra ^^ ett par timmar för att vara mer exakt

Vore kul å se vad ni tycker om min guide, tar emot all form av kritik
Vad kunde jag ha gjort bättre?
Var något i guiden otydligt ?
------------------------------------------------------>

Lite Q&A
Q1: Varför skapa guiden för windows och inte linux?
A1: För att det redan finns så många olika guider ute på nätet / youtube för just nginx på linux, samt att nginx fungerar väldigt bra på windows om man har allting korrekt inställt. Utöver det så, det är inte alla som känner sig bekväm i linux miljö,
och dom som väljer och stanna i en windows miljö, men ändå vill ha en väldigt säker site, borde få kunna ha det!

Q2: Varför använda Windows 7 istället för Win10 / Windows Server?
A2: Därför att Windows 7 är stabilt, simpelt att säkra, resurssnålt, väldigt likt windows server 2008,
och fler människor har windows 7 licenser, än vad det är folk som har windows server licenser,
utöver det, äldre maskiner har garanterat drivrutiner för windows 7, men kanske inte för windows 10.
Plus att denna guide fungerar klockrent på windows 7, windows server, windows 10 ( Alla versioner )

Q3: Varför så mycket säkerhet? Räcker det inte med vanligt ssl från LE?
A3: Först antar jag att det är upp till var och en och avgöra hur mycket säkerhet man vill ha.
Men för min del så kan jag inte få för mycket, juh mer säkerhet desto bättre.
Tyvärr räcker det inte enbart med vanligt SSL numera då jag vet hur mycket skada man kan göra genom att enbart få tag i serverns ip och sen kolla upp vilka subdomäner domänen har samt vilka headers som webservern tillåter.
Många site:r saknar t.ex. skydd mot att hamra login portaler. ( brute force )
Att ha klen säkerhet på webbservern är inget jag vill ha då den är kopplad till stor del data jag äger.

Q4: Varför ingen VPN ?
A4: Guiden är tänkt för att inte kosta något annat än kanske just tid, dom flesta bra VPN kostar.
Men självklart har jag VPN till min domän. Jag använder mig av AzireVPN.

Q5: Vart är Fail2Ban ?
A5: A5: Drygt å få funktionellt på windows ^^ och jag använder mig nu av unRaid så jag har f2b installerat
Men vill ni ändå ha det till windows så kan ni testa wail2ban som är en port av fail2ban för windows!
Jag hade 2FA ( Two-factor authentication ) på min site när allt låg på windows, väl inloggad så finns levels på users, så även om man lyckas ta sig in på site:n så kommer man ej åt något då allt är satt till minst poweruser med IP kontroll.

Q6: Varför sätta nginx i reverse proxy?
A6: P.g.a. högre säkerhet, Att enbart behöva öppna upp 2 portar i routern (80 & 443) och sedan skicka allt genom port 443 som är krypterad, ger er och alla tjänster ni vill ha tillgängligt utanför erat lokala lan väldigt hög säkerhet, och lägger man sedan till HTTP Authentication + Cloudflare CDN HTTP Proxy, så gör ni det överdrivet jobbigt för nån att ens försöka komma åt era tjänster ni har utanför erat lokala lan. Så vitt jag vet går det inte
Så här blir de om man ens försöker.

Ett par tjänster jag har tillgång till via min site som enbart går att komma åt om man är inloggad är:
Plex, Tautulli, Sonarr, Radarr, Grafana, Varken, Pihole
Då jag har väldigt stort biblotek av media, är det underbart och komma åt alla sin media vart man än befinner sig,
allt jag behöver är en uppkoppling & webbläsare =P

Att få igång HTTP Auth kräver dock att ni kör Organizr med min config.
Men det går att koda så Organizr använder sig av t.ex Wordpress som main template.
( Det går och använda HTTP Auth utanför Organizr, men krävs att ni ändrar i config samt hämtar hem andra filer.)
Så vart är HTTP Authentication?
Den ligger i C:\nginx\auth.conf och är kopplad till errorV2.conf som i sin tur är kopplad till Organizr
Allt ni behöver göra är att installera Organizr

Plex är för dom som inte känner till det som ett eget Netflix, fast bättre då det inte kostar mig något per månad,
samt att jag inte behöver gå efter det skräp utbud som netflix ger sverige.

*****
Kan tänka mig och göra guide på hur man ställer in allt på cloudflare.com så säkert det bara går under ett gratis konto
Kan även tänka mig och göra detaljerade guider på hur man installerar & korrekt konfigurerar
Plex, Tautulli, Sonarr, Radarr, Grafana, QbitTorrent, uTorrent, rTorrent/ruTorrent, Varken, Fillezilla både client och server.
Och mycket mera!

Vad sägs om att få en korrekt konfigurerad rtmp server, så när dom som streamar på t.ex twitch.tv, vill eller behöver gå ut så kan dom helt enkelt ta med sig streamen ^^

Kan även tänka mig att göra guider för att få en korrekt uppsatt DNSSEC.
Även för sPF, DKIM, DMARC, Så slipper ni all form av spoofing,
Eller den nya säkerhets standarden för epost servrar som är
MTA Strict Transport Security & SMTP TLS Reporting.

Jag planerar även att skapa guide för hur man säkrar sitt windows OS när man använder det som en server för sin site.
Dvs, Inget / ingen, kommer att kunna ta sig in och förstöra för er!

Extra info.
Så att jag inte glömmer det,
Min konfig är även konfigurerad på sätt att google och andra sökmotorer ej kan hitta site:n när man söker efter den.
Dvs crawlers & bots kan ej indexa siten, så det måste ni ändra om ni nu vill ha det tillgängligt för SEO.
Alla headers i min konfig är konfigurerade för hög säkerhet,
Dvs: Allow-Origin-Access-Control-Only ~> eran domän!

Scan Reports från securityheaders.com & immuniweb.com/websec (Detta är vad min nginx config ger när allt är klart!)

https://www.immuniweb.com/websec/?id=KjpVlv4P

*****

Nu slutligen, om nån ser något i min konfig som kan förbättras, skriv gärna och berätta vad du hittat, och hur de förbättrar själva konfigurationen

Snälla använd inte bildhost utan ssl i min tråd tack
Använd imagez eller imgur

Denna guide skrevs & skapades av mig Zidichy / xTL
All konfiguration skedde på min Windows 7 VM
Men skrevs på mitt primära system Win10 😋

Önskar ni skicka pm oavsätt plattform så går det utmärkt! 😊
Ni hittar mig nedan.

**Jo en sak till 😋😊 **
Jag antar att en del av er eller kanske alla? undrar varför jag visar IP:t jag använder mig av i min guide.
Och jag gör det p.g.a. det inte är mitt IP
Det är IP:t jag fick slumpmässigt från AzireVPN Så jag kan lugnt visa upp IP:t utan att det händer mig något
Detta är något som många som skapar guider på nätet undviker att visa upp, jag inser det + att jag förstår varför.
Men jag ville inte dölja IP:t utan jag löste det på ett annat sätt
https://check-host.net/ip-info?host=193.183.116.88
https://ipx.ac/193.183.116.88

Discord Info 😊

Guiden skrevs den 8 februari 2019 men publicerades inte förrens den 9 augusti 2019

~Fin

Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Medlem

Värt att nämna (då jag ser att du har en Asus-router) är väl att de flesta Asus-routrar erbjuder gratis DNS genom routerns inbyggda mjukvara?

https://www.asus.com/support/FAQ/1011725/

Bra guide i övrigt! Väl skrivet.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem

Tack freddy
Stämmer att asus erbjuder det, många tillverkare erbjuder nån form av DDNS via routern,
men man är ganska begränsad med DDNS. Med eget cert från let's encrypt finns så mycket större valmöjligheter, & RP är ganska grymt testat RP nångång :)?
Man kan göra så mycket med nginx, jag gillar verkligen hur dom byggt mjukvaran, även fast dom gjort den sämre på windows än för linux
Ser att även du använder dig av AzireVPN! ^^

Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Medlem
Skrivet av Zidichy:

Vid detta steget:

Då man ändrat från html till www så dyker inte denna upp, då www-mappen är tom. Eller är jag ute och cyklar?

Sen verkar det som att man även måste lägga till Nginx i Windows Firewall för att komma åt den. Eller skall man inte göra detta?

Edit: Mycket bra guide som jag lärde mig extremt mycket av.
Tack så mycket.

Är novis på området.
Är deny_access.conf nödvändig om man bara vill köra Nginx för att tillhandahålla filer?

"# Deny access to all .ht files
location ~ /\.ht {
deny all;
}

# Deny access to Org Dashboard files
location ~ /org.db|organizrLog.json|organizrLoginLog.json {
deny all;
}

Jag tänkte om det är något som är relaterat till alla klienter, eller om det är något man bör använda sig av ändå?

Edit2:
Är det inte lika säkert att köra Remote Desktop och komma åt grejorna via det? Varför/Varför inte?

Edit3: Det fanns knappt någon dokumentation för Nginx för Windows. Fick du lära dig på Trial and error eller?

Visa signatur

Ryzen 5800X3D | 64 GB Ram | 7900 XTX | Seagate FireCuda 520 2TB * 3

Permalänk
Inaktiv

Varför legacy version av nginx? Varför inte åtminstone stable?

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Lodisen:

Vid detta steget:
https://i.imgur.com/QePGv40.png

Då man ändrat från html till www så dyker inte denna upp, då www-mappen är tom. Eller är jag ute och cyklar?

Sen verkar det som att man även måste lägga till Nginx i Windows Firewall för att komma åt den. Eller skall man inte göra detta?

Edit: Mycket bra guide som jag lärde mig extremt mycket av.
Tack så mycket.

Är novis på området.
Är deny_access.conf nödvändig om man bara vill köra Nginx för att tillhandahålla filer?

"# Deny access to all .ht files
location ~ /\.ht {
deny all;
}

# Deny access to Org Dashboard files
location ~ /org.db|organizrLog.json|organizrLoginLog.json {
deny all;
}

Jag tänkte om det är något som är relaterat till alla klienter, eller om det är något man bör använda sig av ändå?

Edit2:
Är det inte lika säkert att köra Remote Desktop och komma åt grejorna via det? Varför/Varför inte?

Edit3: Det fanns knappt någon dokumentation för Nginx för Windows. Fick du lära dig på Trial and error eller?

@Lodisen
Hej du har helt rätt, man får inte upp den den välkomst hälsningen p.g.a.
att jag förde över dom filerna från html mappen till ww mappen, men missade och berätta det i min guide.
Tack för att du nämnde det, kommer och editera min guide och lägga till det.
Tackar!!!

Ang Firwall
Jag tror min firewall la till nginx av sig själv, men jag missade även och informera ang detta ^^
Den ska läggas till i windows firewall både public & private, ska se ut så här i firewall.

Uppskattar att du hittar saker som jag missat.
Tack så mycket

deny_access.conf
Är enbart nödvändig för just organizr, den skyddar databasen som skapas av organizr så att folk utifrån ej kan komma åt den.

Ang Remote Desktop
Så länge man ställer in sin remote desktop med hög säkerhet, 2fa / ip filter osv så har man fin säkerhet också.
Fördelen med att ha allt via sin site och inte remote desktop, är att du sätter upp allt en gång och sen fungerar allt oavsätt vilket system du än befinner dig på så länge du har en webläsare och en internet uppkoppling.
Du slipper installera programvara varje gång du ska komma åt något.

Ang dokumentation för Nginx för Windows
Precis, jag lärde mig via trial and error, samt att sitta och läsa på hur nginx fungerar.
Att ha nginx både på windows & på linux hjälpte mig väldigt mycket.
nginx Syntax som fungerar på linux fungerar inte alltid på windows, och tvärtom.

Jag håller med dig, finns väldigt dålig dokumentation ute på nätet för nginx till windows,
Därför skapade jag min guide
Sen så är många människor fortfarande inne på att köra apache på windows, vilket inte behövs + att de drar mer resurser på windows än vad nginx gör, samt att apache är jobbigare att säkra än nginx.

Apache är dock inte dålig, utan fungerar utmärkt som en web server, och jag kan den också.
Men det är skillnad mellan apache och nginx på windows

Tackar för dina fina ord
Blir jätte glad av att du tyckte om min guide

Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Medlem
Skrivet av anon170706:

Varför legacy version av nginx? Varför inte åtminstone stable?

Skickades från m.sweclockers.com

@anon170706
Hej, du kan självklart använda dig av,
Stable version nginx/Windows-1.16.1 istället för Legacy version nginx/Windows-1.14.2
Jag valde och rekommendera den i min guide just p.g.a. att det var den jag använde när jag lärde mig nginx på windows.
Och 1.14.2 har fungerat felfritt för mig.
Har ännu inte testat version 1.16.1 på windows, och jag ville inte rekommendera en annan version av den mjukvara jag själv kör. Kan bli fel om jag kör version 1.xx.x men länkar & rekommendera version 1.xy.y

Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Medlem

Härligt engagemang, bra skrivet, tydliga bilder och allt som krävs för en välgjord guide. Och det menar jag!

Med andra ord: Ta inte detta som att klanka ner på din guide, utan snarare en frågeställning/diskussion kring ditt resonemang i applikations- och OS-val för ändamålet liksom egna tankar och uppmaningar.

Vad jag vill skicka med primärt är, att anledningen till att man väljer att köra nginx som reverse proxy i någon form av linux-dist (server-edition, dvs utan ett desktop-UI) är helt enkelt för att minimera overhead och attackytor. Desto mer onödig mjukvara, desto fler potentiella risker. En av de största anledningarna till att köra nginx är dess minimala footprint för att således frigöra resurser till vad som är viktigt. Att köra det i vad som förmodligen är det tyngsta OS man kan, i desktop-verison dessutom, känns därför lite konstigt i mina ögon. Kanske särskilt när vi tittar på "hemlabb" (det vedertagna begreppet för generalisering av oss nördar som sätter upp servrar hemma) där man faktiskt har ytterst begränsade resurser till skillnad från i en företagsanpassad it-infrastruktur.

Det kan säkert finnas goda anledningar till att köra just windows i detta syfte pga särskilda krav, företagspolicys m.m., men just en reverse proxys enda jobb är att vidarebefordra requests till någon annan, och agererar således inte webbserver i traditionell mening - helt enkelt väldigt lättvikt. Det klassiska (och fullt rimliga valet) i en Windows-miljö är snarare att köra IIS, som även den kan agera reverse proxy och webbserver i traditionell mening, men istället är en vältestad och genomarbetad microsoft-produkt för windows.

Det finns verkligen mängder med kombinationer kring hur man kan sätta upp motsvarande funktionalitet i olika miljöer och anledningen till att jag känner mig tämligen säker på att du inte hittat särskilt mycket eller bra guider gällande just denna kombinationen, är för att det inte finns ett rimligt use case som är applicerbart i en produktionsmiljö på det här viset, eller som i ditt fall i en hemlabbsmiljö. Undantag finns alltid, men det känns ganska svårfångat från mitt perspektiv i detta fall.

Att dessutom rekommendera en legacy-version av en applikation i en "nybörjar-guide" känns livsfarligt, då att hålla sig till stable releaser tryggar dig för att vara uppdaterad med senaste bugg- och säkerhetsfixar. Samma gäller självklart alla val av applikationer - det är aldrig bra att ligga långt bak i versioner på saker som ämnas vara publikt mot internet. Tänk på att alla inte har samma förståelse för vikten av sådana här saker.

Sen är jag medveten om att linux-faktorn kan spela stor roll för gemene man; dvs. att det kan kännas läskigt och/eller obehagligt att sitta i en terminal-ruta och knappa sig fram med knasiga kommandon man aldrig sett tidigare, men det finns fantastiskt många bra guider som man följer på exakt samma sätt som din (denna) väldigt välgjorda guide!

Just my 2 cents

Permalänk
Medlem
Skrivet av sebbeh:

Med andra ord: Ta inte detta som att klanka ner på din guide, utan snarare en frågeställning/diskussion kring ditt resonemang i applikations- och OS-val för ändamålet liksom egna tankar och uppmaningar.

@sebbeh
Nej då klart jag inte gör, jag skrev följande
" Vore kul å se vad ni tycker om min guide, tar emot all form av kritik "

Jag är mycket väl meddveten om vilken respons man kan få när man skriver saker ute på nätet.
Jag är ganska " thicked skinned "

Skrivet av sebbeh:

Vad jag vill skicka med primärt är, att anledningen till att man väljer att köra nginx som reverse proxy i någon form av linux-dist (server-edition, dvs utan ett desktop-UI) är helt enkelt för att minimera overhead och attackytor. Desto mer onödig mjukvara, desto fler potentiella risker. En av de största anledningarna till att köra nginx är dess minimala footprint för att således frigöra resurser till vad som är viktigt. Att köra det i vad som förmodligen är det tyngsta OS man kan, i desktop-verison dessutom, känns därför lite konstigt i mina ögon. Kanske särskilt när vi tittar på "hemlabb" (det vedertagna begreppet för generalisering av oss nördar som sätter upp servrar hemma) där man faktiskt har ytterst begränsade resurser till skillnad från i en företagsanpassad it-infrastruktur.

Du har helt rätt, och jag finner inge fel i det du säger ang overhead & attackytor. Men de hindrar inte folket från att köra windows som sin huvudplattform för sin web server, och jag ser hellre att dom lånar min kunskap och sätter upp det rätt från början istället för att lägga ner mängder med tid på sitt projekt & sen är det nån som kommer och sabbar för dom p.g.a. att dom inte lyckats säkra sin web server.
Dock håller jag inte med dig om att windows 7 är det tyngsta OS:t man kan köra i en desktop-version,
Ta t.ex. vista, eller windows 8 / 8.1 dessa är bra mycket mer resurskrävande än vad windows 7 är.
Samt om man sätter windows 7 i klassiskt läge så drar de fruktansvärt lite resurser.

Skrivet av sebbeh:

Det kan säkert finnas goda anledningar till att köra just windows i detta syfte pga särskilda krav, företagspolicys m.m., men just en reverse proxys enda jobb är att vidarebefordra requests till någon annan, och agererar således inte webbserver i traditionell mening - helt enkelt väldigt lättvikt. Det klassiska (och fullt rimliga valet) i en Windows-miljö är snarare att köra IIS, som även den kan agera reverse proxy och webbserver i traditionell mening, men istället är en vältestad och genomarbetad microsoft-produkt för windows.

När det gäller IIS som finns inbyggt i windows, så kan jag inte rekommendera den över huvudtaget.
IIS bör inte användas alls i min ögon, då den är full av säkerhetshål, jobbig och säkra, och börjar man med IIS och fastnar på något så kommer dom man pratar med rekommendera apache för windows istället och då blir det till att byta från IIS ändå, för att slippa denna bit så hoppar vi både IIS & apache och går direkt till nginx för windows med korrekt uppsättning & säkerhet redan från början, min konfig kommer nämligen med riktigt robust säkerhet.

Skrivet av sebbeh:

Det finns verkligen mängder med kombinationer kring hur man kan sätta upp motsvarande funktionalitet i olika miljöer och anledningen till att jag känner mig tämligen säker på att du inte hittat särskilt mycket eller bra guider gällande just denna kombinationen, är för att det inte finns ett rimligt use case som är applicerbart i en produktionsmiljö på det här viset, eller som i ditt fall i en hemlabbsmiljö. Undantag finns alltid, men det känns ganska svårfångat från mitt perspektiv i detta fall.

Så när jag började med web servrar och hosting så var min första OS miljö på windows med apache just p.g.a. att jag var bekväm i denna miljö. Och hade inte något behov av linux. Men desto bättre man blir, juh mer lär man sig. Och jag insåg ganska snabbt att windows hade begränsningar just när det gäller hosting, men jag ville ändå uppnå en säker & stabil miljö i windows som inte drar så mycket resurser. Och du har rätt, just när det gäller och ha en hemlabbsmiljö med windows som OS istället för linux, så finns de verkligen inte några bra guider för hur man sätter upp allting, utan folket rekommenderar linux, linux & linux, och jag förstår varför.
Men jag gillar windows, och det går och konfigurera så man får en & stabil miljö för just hosting, bara man säkrar och konfigurerar allting korrekt. Och eftersom de inte fanns någon bra guide ute på nätet så fick jag skapa den.
Så jag bestämde mig för att dela med mig av min kunskap & visa hur man gör i windows

Skrivet av sebbeh:

Att dessutom rekommendera en legacy-version av en applikation i en "nybörjar-guide" känns livsfarligt, då att hålla sig till stable releaser tryggar dig för att vara uppdaterad med senaste bugg- och säkerhetsfixar. Samma gäller självklart alla val av applikationer - det är aldrig bra att ligga långt bak i versioner på saker som ämnas vara publikt mot internet. Tänk på att alla inte har samma förståelse för vikten av sådana här saker.

Jag förstår hur du tänker ang legacy-version men de finns vad jag vet inte några sårbarheter i nginx version 1.14.2,
och som jag skrev till tqila,
"Jag valde och rekommendera den i min guide just p.g.a. att det var den jag använde när jag lärde mig nginx på windows. Och 1.14.2 har fungerat felfritt för mig."
Det hade varit skillnad om det fanns sårbarheter i version 1.14.2, jag kände till dom, men ignorerade dom,
och rekommenderade den iaf.
Men självklart kan man använda sig av Stable version nginx/Windows-1.16.1 istället

Skrivet av sebbeh:

Sen är jag medveten om att linux-faktorn kan spela stor roll för gemene man; dvs. att det kan kännas läskigt och/eller obehagligt att sitta i en terminal-ruta och knappa sig fram med knasiga kommandon man aldrig sett tidigare, men det finns fantastiskt många bra guider som man följer på exakt samma sätt som din (denna) väldigt välgjorda guide!

Just my 2 cents

Jupp linux terminal är något som många som sitter på windows inte är bekväm med.
Detta beror på ( iaf enligt min erfarenhet ) att de inte finns nån tydlig dokumentation för just det ändamål som dom är ute efter just för stunden. Och det är inte alla som känner till MAN i linux.
Syntax har som du säkert känner till väldigt stor betydelse i linux, och skriver du ett kommand för just centos men sitter på ubuntu så blir det bara fel. Många linux människor ute på nätet är även väldigt arroganta & otrevliga just när dom får nybörjar frågor, vilket är väldigt synd. T.ex. jag har sett folk fråga ang sudo och hur den ska användas då dom inte vet, och till svar får dom google it, eller lol, etc istället för att bara förklara för dom vad sudo är och hur den används,
detta resulterar i att folk numera oftast börjar sina frågor med,
"sorry for the dumb question" eller "sorry for the silly question" ect.

Det finns inga dumma / löjliga frågor. Det finns dom människor som besitter kunskapen och dom som inte besitter den.
Den som nedvärderar någon som ställer en simpel fråga & gör narr av personen som frågar, bör ej svara.

Skrivet av sebbeh:

Härligt engagemang, bra skrivet, tydliga bilder och allt som krävs för en välgjord guide. Och det menar jag!

Tack så mycket sebbeh
Uppskattar dina vänliga ord, de värmer
& Tack för din feedback, uppskattar den!

stavning -.-
Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Inaktiv
Skrivet av sebbeh:

Härligt engagemang, bra skrivet, tydliga bilder och allt som krävs för en välgjord guide. Och det menar jag!

Med andra ord: Ta inte detta som att klanka ner på din guide, utan snarare en frågeställning/diskussion kring ditt resonemang i applikations- och OS-val för ändamålet liksom egna tankar och uppmaningar.

Vad jag vill skicka med primärt är, att anledningen till att man väljer att köra nginx som reverse proxy i någon form av linux-dist (server-edition, dvs utan ett desktop-UI) är helt enkelt för att minimera overhead och attackytor. Desto mer onödig mjukvara, desto fler potentiella risker. En av de största anledningarna till att köra nginx är dess minimala footprint för att således frigöra resurser till vad som är viktigt. Att köra det i vad som förmodligen är det tyngsta OS man kan, i desktop-verison dessutom, känns därför lite konstigt i mina ögon. Kanske särskilt när vi tittar på "hemlabb" (det vedertagna begreppet för generalisering av oss nördar som sätter upp servrar hemma) där man faktiskt har ytterst begränsade resurser till skillnad från i en företagsanpassad it-infrastruktur.

Det kan säkert finnas goda anledningar till att köra just windows i detta syfte pga särskilda krav, företagspolicys m.m., men just en reverse proxys enda jobb är att vidarebefordra requests till någon annan, och agererar således inte webbserver i traditionell mening - helt enkelt väldigt lättvikt. Det klassiska (och fullt rimliga valet) i en Windows-miljö är snarare att köra IIS, som även den kan agera reverse proxy och webbserver i traditionell mening, men istället är en vältestad och genomarbetad microsoft-produkt för windows.

Det finns verkligen mängder med kombinationer kring hur man kan sätta upp motsvarande funktionalitet i olika miljöer och anledningen till att jag känner mig tämligen säker på att du inte hittat särskilt mycket eller bra guider gällande just denna kombinationen, är för att det inte finns ett rimligt use case som är applicerbart i en produktionsmiljö på det här viset, eller som i ditt fall i en hemlabbsmiljö. Undantag finns alltid, men det känns ganska svårfångat från mitt perspektiv i detta fall.

Att dessutom rekommendera en legacy-version av en applikation i en "nybörjar-guide" känns livsfarligt, då att hålla sig till stable releaser tryggar dig för att vara uppdaterad med senaste bugg- och säkerhetsfixar. Samma gäller självklart alla val av applikationer - det är aldrig bra att ligga långt bak i versioner på saker som ämnas vara publikt mot internet. Tänk på att alla inte har samma förståelse för vikten av sådana här saker.

Sen är jag medveten om att linux-faktorn kan spela stor roll för gemene man; dvs. att det kan kännas läskigt och/eller obehagligt att sitta i en terminal-ruta och knappa sig fram med knasiga kommandon man aldrig sett tidigare, men det finns fantastiskt många bra guider som man följer på exakt samma sätt som din (denna) väldigt välgjorda guide!

Just my 2 cents

Jag är en av dessa individer som tycker det är läskigt med linux-distar (ej GUI).
Och jag sitter faktiskt just nu och försöker gå igång nginx (och lets encrypt) i ubuntu server för att köra reverse proxy.
Men jag hittar faktiskt inga av dessa "fantastiskt många bra guider" som du nämner.

Har du möjlighet att länka/informera om någon/några bra guider för att konfigurera nginx för reverse proxy samt lets sncrypt för SSL på ubuntu server (LTS)?

Permalänk
Medlem
Skrivet av anon170706:

Jag är en av dessa individer som tycker det är läskigt med linux-distar (ej GUI).
Och jag sitter faktiskt just nu och försöker gå igång nginx (och lets encrypt) i ubuntu server för att köra reverse proxy.
Men jag hittar faktiskt inga av dessa "fantastiskt många bra guider" som du nämner.

Har du möjlighet att länka/informera om någon/några bra guider för att konfigurera nginx för reverse proxy samt lets sncrypt för SSL på ubuntu server (LTS)?

Exempel på bra ställen för pålitliga och oftast väluppdaterade guider:
https://www.digitalocean.com/community/tutorials
https://www.linode.com/docs/
https://websiteforstudents.com/

Vad många "gör fel" (missförstå mig rätt) när dem söker efter guider är att man gärna söker efter att hitta en exakt guide.

I ditt fall hade jag istället kikat på att söka efter två guider:
- "How to setup nginx as reverse proxy ubuntu" - gav mig resultatet: https://www.linode.com/docs/web-servers/nginx/use-nginx-rever...

- "How to setup lets encrypt for nginx reverse proxy" - gav mig resultatet: https://www.htpcguides.com/secure-nginx-reverse-proxy-with-le...

Sedan har du en guide för att installera lets encrypt till nginx här: https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx.html

Jag valde ovan resultat för att dem såg vettiga ut efter en snabb överblick.

Tricket för dig att lyckas med detta kommer inte vara linux-specifikt, utan helt enkelt att få till nginx-konfigurationsfilerna, som är detsamma oavsett om du hade använt dig av windows eller linux för just nginx.

Starta gärna en egen forumpost om du har fler frågor och tagga mig, så kan jag säkerligen hjälpa dig om du fastnar.

EDIT: Som tillägg till "tricket för dig att lyckas"-meningen är att både lets encrypt och nginx i sig själva är fullt fungerande efter ett "apt install nginx certbot" och att sedan konfigurationen för just din miljö är "det svåra" och vad som tar lite tid att få ihop.