Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Darmowe proxy w PHP
Forum PHP.pl > Forum > Przedszkole
nitek
witam,

mam taki oto problem do rozwiązania: jedna z firm udostępnia mi aplikację WWW po tunelu VPN.
Tunel jest zestawiony z mojego serwera www, do ich serwera.
Wrzucam tą aplikację do iframe'a i serwuje za pomocą własnej strony www.

Wszystko jest pięknie, gdy oglądam tą stronę z serwera - mam dostęp, ponieważ tunel vpn na to pozwala.
Muszę jednak aplikację wystawić na zewnątrz - tu z pomocą przychodzi mi właśnie proxy w PHP.

Wykorzystałem to: http://www.jmarshall.com/tools/cgiproxy/ jednak to rozwiązanie wymaga licencji do użytku komercyjnego, ja potrzebuję czegoś darmowego.
Czy możecie polecić coś sprawdzonego, co obsługuje dobrze javascript? Jest mi to niezbędne.
PHProxy niestety nie daje rady..

Firma udostępniająca aplikację poleciła napisanie własnego proxy, jednak nie bardzo wiem jak podejść do tematu. Narazie orientuje się w sytuacji.
Z góry dzięki za odpowiedzi!
mydoom.h
Glype proxy?

Demo: http://proxxy.pl


http://www.glype.com/
erix
Cytat
Firma udostępniająca aplikację poleciła napisanie własnego proxy, jednak nie bardzo wiem jak podejść do tematu. Narazie orientuje się w sytuacji.
Z góry dzięki za odpowiedzi!

Zobacz, jak to wygląda pod względem nagłówka HTTP i napisz handlera przez fsockopen" title="Zobacz w manualu PHP" target="_manual albo gniazdka.

Choć bez sensu coś takiego - lepiej postawić squida...

PS. Dodaj tagi do tematu.
ert16
Skoro mogłeś postawić tunel VPN do serwera, to dlaczego nie odciążysz PHP i serwer, i nie wykorzystasz Apache mod_proxy, albo nie przekierujesz pakietów na iptables ?
nitek
Cytat(ert16 @ 20.07.2009, 15:36:44 ) *
Skoro mogłeś postawić tunel VPN do serwera, to dlaczego nie odciążysz PHP i serwer, i nie wykorzystasz Apache mod_proxy, albo nie przekierujesz pakietów na iptables ?


ok, zainteresowałem się mod_proxy.
Udało mi się ustawić po części: strona mi się wyświetla, czyli proxy jako takie działa...
Jest mały problem - aplikacja ma podane ścieżki względne, czyli np. obrazek.gif. W tym momencie, do tych ścieżek na początku dopisywany jest mój adres ip, a chciałbym , żeby dopisywał się adres, który ustawiłem w mod_proxy - jak mogę to ustawić?


PS
Cytat
Glype proxy

Też dobre rozwiązanie, bo widzę, że ładnie działa. musiałbym dokompilować jeszcze php5 jako cgi, bo narazie korzystam z php4 i ze względu na jedną aplikację nie mogę tego zmienić.
ert16
Cytat(nitek @ 22.07.2009, 13:28:51 ) *
ok, zainteresowałem się mod_proxy.
Udało mi się ustawić po części: strona mi się wyświetla, czyli proxy jako takie działa...
Jest mały problem - aplikacja ma podane ścieżki względne, czyli np. obrazek.gif. W tym momencie, do tych ścieżek na początku dopisywany jest mój adres ip, a chciałbym , żeby dopisywał się adres, który ustawiłem w mod_proxy - jak mogę to ustawić?

Hmm.. Dziwne, ścieżki względne powinny działać poprawnie.
Czy możesz załączyć tutaj :
- Konfigurację mod_proxy
- Przykładowe ścieżki jakie się generują, oraz jakich oczekujesz
nitek
pewnie ze względu na to, że robię to pierwszy raz, coś namieszałem.. winksmiley.jpg

konfig mod_proxy:
Kod
<IfModule mod_proxy.c>
    ProxyRequests off

    <Directory proxy:*>
        Order deny,allow
        Deny from all
        Allow from 192.168.0.26
    </Directory>

    ProxyPass /folder http://195.x.x.55:8080/middle
    ProxyPassReverse /folder  http://195.x.x.55:8080/middle

    ProxyVia On
</IfModule>


Folder 'folder' leży w katalogu głównym czyli: 192.168.0.15/foder/
otrzymuje linki w tym momencie takie:

https://192.168.0.15/middle/obrazek.gif,
a chciałbym uzyskać ścieżkę:
http://195.x.x.55:8080/middle/obrazek.gif

Próbowałem w ProxyPass dać całe https://192.168.0.15/folder lub 192.168.0.15:443/folder, ale niestety również nie pomogło.
Właśnie czytam dalej dokumentację...

może dodam jeszcze: Server version: Apache/1.3.33 (Debian GNU/Linux)
ert16
Cytat(nitek @ 23.07.2009, 06:49:43 ) *
pewnie ze względu na to, że robię to pierwszy raz, coś namieszałem.. winksmiley.jpg

konfig mod_proxy:
Kod
<IfModule mod_proxy.c>
    ProxyRequests off

    <Directory proxy:*>
        Order deny,allow
        Deny from all
        Allow from 192.168.0.26
    </Directory>

    ProxyPass /folder http://195.x.x.55:8080/middle
    ProxyPassReverse /folder  http://195.x.x.55:8080/middle

    ProxyVia On
</IfModule>


Folder 'folder' leży w katalogu głównym czyli: 192.168.0.15/foder/
otrzymuje linki w tym momencie takie:

https://192.168.0.15/middle/obrazek.gif,
a chciałbym uzyskać ścieżkę:
http://195.x.x.55:8080/middle/obrazek.gif

Próbowałem w ProxyPass dać całe https://192.168.0.15/folder lub 192.168.0.15:443/folder, ale niestety również nie pomogło.
Właśnie czytam dalej dokumentację...

może dodam jeszcze: Server version: Apache/1.3.33 (Debian GNU/Linux)

Moim zdaniem te zapytania nadal nie powinny robić problemów w pobieraniu obrazków. Bo przecież obrazek, czy strona w HTML, czy wynik działania aplikacji po stronie klienta nadal powinny działać tak samo.
Podaj proszę url, który prawidłowo przechodzi przez Proxy.

Jeśli aktualna konfiguracja sprawia problemy ( a moim zdaniem nie powinna ), i chciałbyś aby w urlu pojawiało się
http://195.x.x.55:8080/middle/obrazek.gif
Oznacza to, że twój serwer pod adresem 195.x.x.55 ma nasłuchiwać na porcie 8080.
Jeśli tego chcesz, to utwórz osobnego wirtualnego hsota, który nasłuchuje na tym porcie, i przekieruj z niego zapytania analogicznym sposobem do swojego serwera za tunelem VPN.

Pozdrawiam.
nitek
ok, kumam o co chodzi, trochę trudniej z wykonaniem.
sytuacja wygląda w ten sposób, że aplikację MUSZĘ wystawić po https.

Aby proxy zadziałało, muszę przekierowywać cały ruch z danego virtualhosta (jak na konfigu poniżej - inna konfiguracja u mnie nie działa).
Na moim serwerze jeden virtualhost jest już stworzony i udostępnia inne aplikacje po https. W związku z tym, nie mogę w nim podpiąć proxy.

teraz pytanie - czy mogę włączyć ssl po innym porcie (dodatkowo, oprócz 443)?

Na chwilę obecną mam tak:
Kod
<VirtualHost 192.168.0.15:8080>
    DocumentRoot /var/www/html/alr/
    SSLEngine off

    ProxyRequests off
    ProxyPass / http://195.x.x.55:8080/
    ProxyPassReverse / http://195.x.x.55:8080/
    ProxyVia off
</VirtualHost>

i wszystko działa pięknie.
Muszę jednak zaprezentowanego virtualhosta wystawić po https :/


//edit
Czy wystarczy, że do virtualhosta, którego konfig dałem powyżej dopiszę:
Kod
SSLEngine on
    SSLCertificateFile    /etc/apache/ssl.crt/server.crt
    SSLCertificateKeyFile /etc/apache/ssl.key/server.key

?
erix
Cytat
Czy wystarczy, że do virtualhosta, którego konfig dałem powyżej dopiszę:

Ludzie, co ostatnio się dzieje - zamiast najpierw sprawdzić, czy działa, to się pytacie... :/

Niedługo pewnie będziecie pytali, czym się podcierać... dry.gif

http://eriz.pcinside.pl/weblog/apache-22-p...-z-ssl-114.html
nitek
Cytat(erix @ 23.07.2009, 15:15:32 ) *
Ludzie, co ostatnio się dzieje - zamiast najpierw sprawdzić, czy działa, to się pytacie... :/

Niedługo pewnie będziecie pytali, czym się podcierać... dry.gif

http://eriz.pcinside.pl/weblog/apache-22-p...-z-ssl-114.html


spokojnie. certyfikaty mam wygenerowane i podpięte, jak już wspomniałem mam wystawione inne aplikacje.
pytam, ponieważ po włączeniu ssla u mnie, z drugiej strony dostaję taką odpowiedź:
HTTP Status 404 - /mod_ssl:error:HTTP-request
type: Status report
message: /mod_ssl:error:HTTP-request
description: The requested resource (/mod_ssl:error:HTTP-request) is not available.
Apache Tomcat/5.5.27

problem dotyczy ssla po mojej stronie + mod_proxy. Czy druga strona musi korzystać z mod_ssl (tak jak ja), żebym ja mógł włączyć je po swojej stronie?
erix
Cytat
spokojnie. certyfikaty mam wygenerowane i podpięte, jak już wspomniałem mam wystawione inne aplikacje.

To trzeba było od razu z tym błędem.

Masz ustawiony osobny DocumentRoot dla połączeń via SSL?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.