NGINX Proxy Manager: Videresending til ny adresse
Mon 2024-01-22 Web
Jeg har forsøkt å sette opp min egen fildelingstjeneste med varierende hell, og har endt opp med å dele en link laget i et system jeg ikke lenger bruker siden det hadde problemer med å dytte filer større enn 1GB over nettet. Jeg endte opp med å bytte system og har hatt mer hell med det nye, men siden de forskjellige systemene hadde forskjellige meninger om hvordan linker skulle se ut, satt jeg da plutselig med en URL som ikke lenger funket. Denne måtte da videresendes til den faktiske/nye URLen. Så er problemet at den nye URLen ikke ser ut i måneskinn og jeg kan heller ikke spesifisere hva jeg ønsker som URL eller ID, og dermed må jeg ha en videresending til.
Så, i NPM (Nginx Proxy Manager) må man da gjøre som følger:
- Rediger proxyhosten man har satt opp, klikk på Custom Locations
- Klikk Add Location
- Legg inn filstien du skal matche i "Location", f.eks /s/IJhGkl867ESikd
- Legg inn scheme (http eller https) og full adresse du skal videresende til i forward hostname / IP, f.eks. share.example.com/MyCustomURL, og portnummer (80 for http, 443 for https, eller en hvilken som helst annen port så lenge tjenesten du videresender til faktisk lytter der)
- Klikk så på tannhjulet til høyre for "location" og legg inn følgende NGINX-configsnutt:
- location = /content/unique-page-name {
return 301 /new-name/unique-page-name;
}
- Endre /content/unique-page-name til gammel URL og /new-name/unique-page-name til den nye URLen.
- Gjenta så mange ganger som er nødvendig for å dekke alle URLene du trenger å videresende, og klikk så Save.
- Vent noen minutter til NPM får med seg hva som skjer (jeg fikk ikke ting til å fungere umiddelbart etter lagring og måtte gi det litt tid), og test en gammel URL og se at den blir videresendt.
- Hvis det ikke funker, sjekk NPM-logger for å se hva som er galt.
Oppdatering: Etter noen oppdateringer av NPM og mye frustrasjon, viser det seg at alt dette over egentlig er litt bortkastet, siden man kan gjøre det så enkelt som dette:
- Hvis du fulgte instruksene over, fjern alt sammen.
- Rediger hosten du skal sette opp videresendinger for.
- Gå til Advanced
- I tekstfeltet "Custom Nginx Configuration", legg inn kode for videresendingene du trenger, f.eks.:
if ( $request_filename ~ /unique-url-1) {
return 301 https://example.com/d?id=IJhGkl867ESikd;
}
- Gjenta så mange ganger du trenger for alle custom-adressene du trenger og klikk Save når du er ferdig.
Jeg hadde gjort begge deler med NPM 2.10.x siden det ikke funket bare en av variantene, men etter oppdatering til 2.10.4 (tror jeg) sluttet ting å fungere. Etter at jeg oppdaterte til 2.11.1 knakk alt og jeg måtte faktisk bruke tid på å få stablet ting på beina igjen.