Ik heb een probleem met het instellen van een reverse proxy in NGINX. (De oorzaak van het probleem ligt in dit geval waarschijnlijk bij mij :-) Ik had het nog nooit gedaan, dus ik dacht dat ik het wel zou kunnen.

Wat ik zou willen is dat als ik url X intyp, dat er op de achtergrond site Y geladen wordt, terwijl in de adresbalk het adres van url X blijft staan. Beide sites gebruiken HTTPS.

Ik ben begonnen met het schoolvoorbeeld:

server {
        listen 443 ssl;
        server_name X;
        location / {}
            proxy_redirect         off;
            proxy_pass             https://Y.nl;
        }
}


Maar de uitkomst hiervan is een soort redirect, want als ik dan url X intyp, komt in de adresbalk de url van site Y te staan.

Hoe kan ik dit oplossen met NGINX? Als het niet kan, dan moet ik waarschlijn een PHP proxy schrijven/gebruiken?
Volgens mij is dit geen taak van een webserver. Hoogstens van een firewall.
Want waarom heb je dit nodig?
Bedoel je dat het niet kan?
NGINX draait op de firewall appliance van pfSense, dus die trukendoos heb ik ook tot m'n beschikking.
Hm, het zou toch wel moeten kunnen. Ik heb dit op deze manier zelf ook eens geflikt in een ver verleden.
En dan met ook zoiets als dit:


proxy_redirect         off;
proxy_pass             https://Y.nl;


Het geeft al aan dat er geen redirect moet plaatsvinden.
Zit die redirect niet ergens in de site zelfs?

Nee.. site Y is nu nog een lege HTML met een html titel en een <div>test</div> ... als het proxy deel van NGINX werkt dan kijk ik wel weer verder. Toch jammer dat het nog niet werkt, want ik kan natuurlijk een PHP proxy in elkaar zetten, maar dat kost wel veel meer tijd dan NGINX het laten doen (als het zou werken).
Je sluit meteen je accolade op lijn 4, waardoor de regel genegeerd wordt.
Misschien is dat het?
Owh, goeie! Maar dat is het nog net niet helemaal, in nginx.conf heb ik het goed staan.
Er zijn op SO verschillende mensen die het zeggen te hebben opgelost met:

proxy_set_header Host $host:$server_port;


Maar ook dat lost het niet op. De voorbeelden op SO gaan allemaal over HTTP, niet over HTTPS, misschien moet ik eens kijken of NGINX daar iets speciaals voor heeft.



[size=xsmall]Toevoeging op 26/10/2020 17:14:46:[/size]

Yes, het werkt!
Met dank aan IBM!

Oplossing:

    location / {
        proxy_pass https://Y.nl;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
    }
- Ariën - op 26/10/2020 16:50:00

Volgens mij is dit geen taak van een webserver. Hoogstens van een firewall.
Want waarom heb je dit nodig?


Dit behoort zeker tot de taken van een webserver of van een loadbalancer. Een firewall is in eigenlijk alleen maar om 'fout' verkeer er uit te filteren. Als je kijkt hoe nginx en php-fpm samenwerken dan is dat eigenlijk op hetzelfde principe gebaseerd, alleen maar je daar verbinding naar een socket.
Joris Ros op 26/10/2020 17:21:02

[quote="- Ariën - op 26/10/2020 16:50:00"]
Volgens mij is dit geen taak van een webserver. Hoogstens van een firewall.
Want waarom heb je dit nodig?


Dit behoort zeker tot de taken van een webserver of van een loadbalancer. Een firewall is in eigenlijk alleen maar om 'fout' verkeer er uit te filteren. Als je kijkt hoe nginx en php-fpm samenwerken dan is dat eigenlijk op hetzelfde principe gebaseerd, alleen maar je daar verbinding naar een socket.
[/quote]
Klopt, ik had mijzelf al gecorrigeerd. Typisch een geval van Out-of-coffee-probleem, vermoed ik. Verder is het al weer een paar jaar geleden dat ik wat met Nginx gedaan heb op één van mijn servers.
Achja, niemand kan alles tegelijk Ik was al lang blij dat ik meteen reactie kreeg op het PHP Forum.
Vaak als je iets aan een luisterend oor probeert uit te leggen kun je al tot andere inzichten komen.
Had ik onlangs nog met Ozzie. Dat is het mooie van (op een bepaalde manier toch) samen werken.

Reageren