Skocz do zawartości
netdive

Nginx reverse proxy, Wordpress i linki absolutne

Polecane posty

Witam,

 

Mam jedną zagwozdkę której nie potrafię ugryźć. Może ktoś pomoże.

Dwa serwery :

Backend - Wordpress http://blog.vm

Frontend - Nginx jako proxy_pass http://proxy.vm

 

Wszystko działa OK. Wywołując http://proxy.vm ładuje się backend - nazwa URI w przeglądarce to http://proxy.vm. W przypadku linków relatywnych też działa tak jak chcę tj, http://proxy.vm/costam.php

Natomiast w przypadku odnośnika absolutnego http://blog.vm/nazwa-kolejnego-postu wywołanie omija proxy i ładuje bezpośrednio zawartość backendu (przynajmniej tak wyświetla się w pasku adresu)

W skrócie - potrzebuję za każdym razem i przy każdym odnośniku zachować hostname frontendu tj.

http://proxy.vm/nazwa-kolejnego-postu

Wiem, że to jakoś jest możliwe, bo kiedyś uruchomiłem taką konfigurację z Drupalem po stronie backendu (też miałem podobą zagwozdkę ale jakoś ruszyło z tym, że nie wiem już jak :-) )

Nie wiem czy to kwestia jakiś rewrite, konfiguracji proxy czy czegoś po stronie frontendu....

 

Moj blok serwera Nginx'a (próbowałem też dyrektyw proxy_set_header)

 server {
        listen       localhost:80 default_server;
        server_name  proxy.vm;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://blog.vm/;     
}

/etc/hosts

127.0.0.1 proxy.vm proxy
# Auto-generated hostname. Please do not remove this comment.
18x.xx.xx.186 proxy.vm proxy

Frontend i backend sa oddzielnymi instancjami.

Podpowie coś jakaś mądra głowa ??

 

 

 

 

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przecież to w pełni poprawne zachowanie?
Możesz na firewallu wyciąć dostęp do serwera WWW na backendzie, tak żeby tylko proxy mogło się z nim kontaktować. W innym przypadku musisz zrobić zwykłe przekierowanie na serwerze WWW blog.vm, które będzie kierowało na proxy.vm.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ok, może trochę sprecyzuje.

Serwer proxy ma służyć jako usługa hidden service czyli host postawiony z wykorzystaniem sieci tor z pseudo-domeną .onion

Backend to normalnie dostępny serwis w clearnet, który ma być zmirrorowany właśnie za tor. Nie pisałem o tym wcześniej bo generalnie to bez znaczenia raczej dla samego ustawienia proxy.

Przepiąłem dla testu na taki testowy backend z dwoma linkami które dokładnie obrazują o co mi chodzi.

http://ljqnehrgngypupwm.onion/

W pierszym linku otwiera sie tak jak potrzebuje tj "http://ljqnehrgngypupwm.onion/test1/index.html"

W drugim już nie "http://tramal.us/test2/index.html" - chciałbym żeby cały czas była domena .onion

Również w logach w przypadku pierwszego odnośnika mam logowanie z IP 127.0.0.1 a w drugim realne IP (oczywiście już przetarasowane przez cebule)

Jakiś czas temu robiłem taką usługę dla dużego serwisu - dokładnie taki sam mirror, też miałem podobny problem, ale w końcu odpaliło tylko już nie pamiętam co i jak - bardziej po ciemku to się udało zrobić :)) - być może też admin backendu coś po strone Drupala ustawił bo mu zgłaszałem sprawę).

 

 

 

Edytowano przez netdive (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ok, problem rozwiązałem poprzez globalną zmianę linków z absolutnych na relatywne po stronie wordpress i działa, choć nie jest to dobry sposób. Na przyszłość, wolałbym jednak ogarnąć to w inny sposób, po stronie proxy - nie wiem czy jest to możliwe tylko. Próbowałem rewrite ale bez sukcesu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×