Synology-Forum.nl
Tweaks / Addons A.K.A. The Underground => Web Station mods => Topic gestart door: krism75 op 25 mei 2011, 08:29:42
-
Ik zou graag via mijn syno DS211 een url rewrite (of evt. redirect) doen naar een externe url.
Ik heb een geregistreerd domain, dus wat ik precies wil is: router.mijndomain.be ==> https://andereurl:port (https://andereurl:port).
Bij voorkeur zou ik wel 'router.mijndomain.be' zichtbaar willen houden.
Hoe kan ik dit best aanpakken? Via een virtual host met een rewrite erin? Hoe moet ik die dan opstellen en in welke conf file moet dit dan?
Of evt. andere oplossing zijn ook welkom natuurlijk
-
bedoel je zoiets? (zie onderstaande URL en de uitwerking daarvan...)
http://files.lukevredeveld.nl (http://files.lukevredeveld.nl)
-
Inderdaad zoiets, maar eindpunt van de externe url is een andere site (niet gehost op de synology)
-
Ik heb het als volgt gedaan:
-zorg dat je hostingprovider een A-record aanmaakt dat router.mijndomein.be verwijst naar het IP-adres van http://www.mijndomein.be (http://www.mijndomein.be) (in dit geval waarschijnlijk het IP-adres van jouw internetaansluiting waarachter je Syno hangt). Beter (of in ieder geval handiger voor jou) is om je provider een wildcard te laten maken, dus een A-record met *.mijndomein.be zodat alles voor de .mijndomein.be verwijst naar jouw IP. Sommige hostingproviders doen dat standaard, andere niet standaard en weer andere doen het helemaal niet.
-open de admin van je syno en ga naar config scherm --> webservices --> virtuele host en maak een nieuwe host aan. Bij submap vul je mapnaam aan waar de bestanden komen te staan. In dit geval zou ik die map de naam router geven. (fysieke locatie dus iets van /volume1/web/router). Vul bij hostnaam router.mijndomein.be in, bij protocol HTTP en bij port 80 (tenzij je een andere poort gebruikt wat ik me niet kan voorstellen).
-in de map router op je webserver (/volume1/web/router) zet je een index.html-bestandje dat verwijst naar het juiste domein. Een voorbeeld:
<html>
<head>
<meta HTTP-EQUIV="REFRESH" content="0; url=https://andereurl:port">
</head>
</html>
of, als je wilt dat de bezoeker ziet dat hij doorgeleid wordt:
<html>
<head>
U wordt doorgeleid naar een andere website...
<meta HTTP-EQUIV="REFRESH" content="5; url=https://andereurl:port">
</head>
</html>
-daarna zou het moeten werken zoals jij wilt. Daarbij blijft echter router.mijndomein.nl niet meer zichtbaar. Moet vast kunnen, maar ik ben ook meer een hobby'ist, dus geen idee hoe dat moet. Misschien dat iemand anders je dat kan vertellen.
succes, ik hoor graag of het werkt!
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>router.mijndomain.be</title>
</head>
<frameset rows="*" cols="*" framespacing="0" frameborder="no" border="0">
<frame src="http://anderesite.nl/index.html">
</frameset>
<noframes><body>
</body></noframes>
</html>
Volgens mij moet dit werken, maar dan moet je wel de index.hml (of default.html/php etc) invullen.
-
Het gebruik van frames is op zich een bruikbare manier om de inhoud van de adress-bar
"onder controle" te houden.
Maar, bij het (b)lijkt geen goede, generieke oplossing bij cross-domain gebruik,
omdat het kan afhangen van de security settings van de browser.
Bij IE staat bijv. de security setting "Access Data Sources Across Domains" default op Disabled.
Als simpel alternatief kan je eventueel een redirect naar "andere_url.be" gebruiken
(met een REFRESH META)en het gewenst zichtbare blijvende "router.mijndomain.be" opnemen
als Page Title in de header section van de html code op de "andere_url.be" site.
<head>
...
<title>router.mijndomain.be</title>
...
</head>
Plerry
-
De grote vraag is eigenlijk waarom zou je dit willen doen.
als je een domein hebt met hosting dan kan je toch gewoon de A-records naar de juiste laten verwijzen...
-
De reden waarom ik dit wil is:
1) omdat ik dan makkelijk subdomainen kan redirecten naar evt andere sites
2) omdat niet van overal (lees: werk) alle poorten open staan
Ondertussen heb ik wel een oplossing werkende dankzij mod_proxy en redirects. Ik moet nog wel een aantal zaken testen en dan zal ik wel op volledige oplossing posten
-
Maar wil je dus eigenlijk je Syno als proxy (server) gebruiken.
Daadwerkelijk via de Syno op poort 80 naar iets andere op een "exotische" poort.
Wat ik hier lees is dat er meer zijn die zoiets hebben geprobeerd
viewtopic.php?f=42&t=1474 (http://www.synology-forum.nl/viewtopic.php?f=42&t=1474)
-
Heb het dus aan de praat gekregen:
in de conf-file: /usr/syno/apache/conf/extra/httpd-default.conf-user het volgende toevoegen:
LoadModule proxy_http_module modules/mod_proxy_http.so #om http en https te proxyen
<VirtualHost *:80>
ServerName router.mijndomein.be
ProxyRequests on
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / https://andereurl:port (https://andereurl:port)
ProxyPassReverse / https://andereurl:port (https://andereurl:port)
ProxyPreserveHost On #Dit zorgt dat de url in de navigation bar in IE, FF, ... onveranderd blijf ivm domein
ErrorLog /var/log/httpd.log #evt. logging opzetten
LogLevel error
</VirtualHost>
Voila, even een herstart van de apache: /usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
-
Heb het dus aan de praat gekregen:
in de conf-file: /usr/syno/apache/conf/extra/httpd-default.conf-user het volgende toevoegen:
LoadModule proxy_http_module modules/mod_proxy_http.so #om http en https te proxyen
<VirtualHost *:80>
ServerName router.mijndomein.be
ProxyRequests on
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / https://andereurl:port (https://andereurl:port)
ProxyPassReverse / https://andereurl:port (https://andereurl:port)
ProxyPreserveHost On #Dit zorgt dat de url in de navigation bar in IE, FF, ... onveranderd blijf ivm domein
ErrorLog /var/log/httpd.log #evt. logging opzetten
LogLevel error
</VirtualHost>
Voila, even een herstart van de apache: /usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
Mooi gedaan! Maar denk er wel om dat bij een firmware update dit fraais verloren gaat... Stel het voordien even veilig :wink:
Wizjos
-
Hulde!
-
Hallo krism75,
Graag wil ik dit toepassen, echter nadat de wijzigingen zijn aangebracht en de apache een herstart commando heeft gekregen, krijg ik het volgende in beeld:
DiskStation> /usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd stopped
Start User Apache Server .....
httpd: Syntax error on line 464 of /usr/syno/apache/conf/httpd.conf: Syntax error on line 77 of /usr/syno/apache/conf/extra/httpd-default.conf-user: LoadModule takes two arguments, a module name and the name of a shared object file to load it from
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd could not be started
Regel 464 van /usr/syno/apache/conf/httpd.conf bestaat uit:
Include conf/extra/httpd-default.conf-user
wat dus de verwijzing is naar de volgende regel hieronder:
Regel 77 van /usr/syno/apache/conf/extra/httpd-default.conf-user bestaat uit:
LoadModule proxy_http_module modules/mod_proxy_http.so #om http en https te proxyen
wat dus de eerste regel van de toevoeging is.
Wat dien ik eventueel nog te wijzigen?
-
Dit werkt zeker weten.
Benodigheden:
poort 443 geopend in je router (5001 kan zelfs dicht hoeft niet)
Op onderstaande manier kun je dus inloggen op je NAS zonder poortnummer dus b.v op het werk.
Namelijk het verkeer wat extern op poort 443 binnenkomt wordt geproxied naar poort 5001 intern.
Grappig hieraan is dat als je in het logboek kijk het lijkt alsof je lokaal ingelogd bent.
Het gedeelte photo.synology.nl heb ik erin gezet omdat anders DSphoto niet meer via https werkte(kan weggelaten worden indien je dit niet nodig vind).
aanpassen (als nano geinstalleerd is)
nano /usr/syno/etc/httpd-ssl-vhost.conf-user
Zet onderstaand in het bestand.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
NameVirtualHost *:443
<VirtualHost *:443>
ServerName photo.synology.nl #Je kan photostation gewoon op de oude manier blijven benaderen
ProxyRequests Off
SSLEngine on
SSLProxyEngine On
DocumentRoot /usr/syno/synoman/phpsrc/photo
ProxyPass /photo https://192.168.1.102:443/photo #IP adres aanpassen naar jouw interne IP adres
ProxyPassReverse /photo https://192.168.1.102:443/photo #Idem
</VirtualHost>
<VirtualHost *:443>
ServerName admin.synology.nl #benaderen van diskstation dus via https://admin.jouwdomeinnaam.nl
ProxyRequests Off
SSLEngine on
SSLProxyEngine On
ProxyPass / https://192.168.1.102:5001/ #IP adres aanpassen naar jouw interne IP NAS
ProxyPassReverse / https://192.168.1.102:5001/ #Idem
</VirtualHost>
herstarten apache
/usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
Voila.
-
Kan iemand een voorbeeld posten voor hij/zij onderstaande heeft ingeregeld met Sickbeard, Couchpotato etc?
Ik probeer het ook werkend te krijgen voor mn gewone websites maar dat gaat niet:
Ik heb het zo geregeld:
vi httpd-vhost.conf-user
adModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
NameVirtualHost *:80
<VirtualHost *:80>
ServerName test.domein.nl #Je kan photostation gewoon op de oude manier blijven benaderen
ProxyRequests Off
SSLEngine on
SSLProxyEngine On
DocumentRoot /volume1/web/
ProxyPass /nzbgetweb http://192.168.1.210/nzbgetweb (http://192.168.1.210/nzbgetweb) #IP adres aanpassen naar jouw interne IP adres
ProxyPassReverse /nzbgetweb https://192.168.1.210/nzbgetweb (https://192.168.1.210/nzbgetweb) #Idem
</VirtualHost>
En ik krijg de ERROR:
httpd: Syntax error on line 522 of /usr/syno/apache/conf/httpd.conf: Syntax error on line 2 of /usr/syno/etc/httpd-vhost.conf-user: Cannot load /usr/syno/apache/modules/mod_proxy_http.so into server: /usr/syno/apache/modules/mod_proxy_http.so: undefined symbol: ap_proxy_location_reverse_map
Alvast bedankt voor jullie reacties
-
Je hebt https gebruikt bij reverse.
-
Je hebt https gebruikt bij reverse.
Ik heb het over het hoofd gezien en aangepast.
Helaas nogsteeds hetzelfde resultaat.:(
-
helaas ben ik niet meer in het bezit van een synology dus kan ik niet vergelijken maar de fout is nogal specifiek inclusief lijn nummers dus controleer die eerst maar. :roll: