› Foros › PC › Software libre
<VirtualHost *:*>
ServerName subsonic
ProxyPreserveHost on
ProxyPass /subsonic http://xxx.xxx.xxx:4040/
ProxyPassReverse /subsonic http://xxx.xxx.xxx:4040/
</VirtualHost>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^subsonic(.*) http://blablablbla.com:1234/$1 [P,L]
Delhora escribió:Buenas
El ProxyPass lo único que te hace es de eso.. de proxy.. es decir todo lo que venga de /subsonic te lo va a mandar a dónde le digas (en este caso al 4040)
Has probado la otra modalidad? Una RewriteRule.. no la he probado pero se me ocurre algo así:RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^subsonic(.*) http://blablablbla.com:1234/$1 [P,L]
Ya me contarás Ahora lo probaré yo también xD
<VirtualHost *:80>
ServerName blablabla.blablabla.com
CustomLog logs/blabla.log combined
ErrorLog logs/blabla.log
DocumentRoot /opt/webs/blabla
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
</VirtualHost>
Delhora escribió:Hola
La RewriteRule iría en lugar del ProxPass, en fichero dentro del sites-enable (si es apache2) o en el httpd.conf
He hecho lo siguiente:
En el httpd.conf he creado un VirtualHost nuevo para probar (esto no hace falta que lo hagas, hazlo en el VirtualHost dónde tengas las aplicaciones)<VirtualHost *:80>
ServerName blablabla.blablabla.com
CustomLog logs/blabla.log combined
ErrorLog logs/blabla.log
DocumentRoot /opt/webs/blabla
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
</VirtualHost>
Haces un reload (service httpd reload // service apache2 reload)
Y ale, funciona, el puerto no se ve y me redirige a una web que estaba escuchando por ese puerto
<VirtualHost *:80>
CustomLog logs/blabla.log combined
ErrorLog logs/blabla.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
</VirtualHost>
RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
RewriteRule ^/pepe(.*) http://www.blablabla.com:1234/$1 [P,L]
Delhora escribió:Hola
Sin problema, pregunta lo que necesites
Entiendo que si pones todo en el sites-enable y haces un reload debería funcionar. Intento desglosar el código de abajo
Todo lo anterior lo puse, porqué en mi caso yo tengo más de un VirtualHost y los diferencio por ServerName, en tu caso que sólo tienes uno y viene por defecto bastaría con poner lo siguiente:<VirtualHost *:80>
CustomLog logs/blabla.log combined
ErrorLog logs/blabla.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
</VirtualHost>
Básicamente lo que hace es que cualquier petición que ataque al puerto 80 entrara al VirtualHost y ejecutara lo que tiene dentro. En este caso tiene una RewriteRule, que consta de:
RewriteCond %{SERVER_PORT} 80
Lo que marca esta directriz es que para ejecutar la Rule siguiente tiene que cumplir lo siguiente: Que el puerto sea el 80
Como lo cumple pasa a la RewriteRule:RewriteRule ^/subsonic(.*) http://www.blablabla.com:1234/$1 [P,L]
Lo que dice es que todo lo que venga desde http://tusite.com/subsonic lo envie a blablabla.com puerto 1234
Si lo que quieres cambiar es el contexto, en vez de subsonic sea pepito sería así:RewriteRule ^/pepe(.*) http://www.blablabla.com:1234/$1 [P,L]
No sé si te habré liado más
Delhora escribió:Hola
Lo tengo montado así porqué en un mismo server tengo diferentes sites
http://www.pagina1.com
http://www.pagina2.com
http://www.pagina3.com
Todas escuchan por el puerto 80, y para que cada una "cargue" el DocumentRoot o la aplicación pertinente las diferencio por virtualHost.
En tu caso no hace falta, puedes ponerlo todo en el mismo.
Saludos!
<VirtualHost *:80>
CustomLog logs/subsonic.log combined
ErrorLog logs/subsonic.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.midireccion.com:4040/$1 [P,L]
</VirtualHost>
<VirtualHost *:80>
CustomLog logs/transmission.log combined
ErrorLog logs/transmission.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/transmissionc(.*) http://www.midireccion.com:8080/$1 [P,L]
</VirtualHost>
<VirtualHost *:80>
CustomLog logs/webmin.log combined
ErrorLog logs/webmin.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/webmin(.*) http://www.midireccion.com:10000/$1 [P,L]
</VirtualHost>
<VirtualHost *:80>
CustomLog logs/apache.log combined
ErrorLog logs/apache.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.midireccion.com:4040/$1 [P,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/transmissionc(.*) http://www.midireccion.com:8080/$1 [P,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/webmin(.*) http://www.midireccion.com:10000/$1 [P,L]
</VirtualHost>
Delhora escribió:Hola
Tal y como lo has puesto funcionaría, pero la única ventaja que tendrías allí es que tendrías los logs separados (que no creo que te interese ahora)
Esto así debería funcionar<VirtualHost *:80>
CustomLog logs/apache.log combined
ErrorLog logs/apache.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.midireccion.com:4040/$1 [P,L]
RewriteRule ^/transmissionc(.*) http://www.midireccion.com:8080/$1 [P,L]
RewriteRule ^/webmin(.*) http://www.midireccion.com:10000/$1 [P,L]
</VirtualHost>
Delhora escribió:Hola
Tal y como lo has puesto funcionaría, pero la única ventaja que tendrías allí es que tendrías los logs separados (que no creo que te interese ahora)
Esto así debería funcionar<VirtualHost *:80>
CustomLog logs/apache.log combined
ErrorLog logs/apache.log
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/subsonic(.*) http://www.midireccion.com:4040/$1 [P,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/transmissionc(.*) http://www.midireccion.com:8080/$1 [P,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/webmin(.*) http://www.midireccion.com:10000/$1 [P,L]
</VirtualHost>
Ahora se me ha ido de la cabeza y no se si poniendo sólo un RewriteCond al principio funcionaria o daría problemas
flap0 escribió:Ya que sale el tema, una duda relacionada...
En la universidad tienen capado el wifi y sólo deja acceder a páginas "normales", nada de urls con puertos, ¿configurando todo como dice el autor del post y delhora podría saltarme esa restricción?
Es que sólo me deja acceder a owncloud y me dejan sin música todo el día .
verdezito escribió:
Me explico un poco más: imaginaros que quiero entrar para transmission directamente a "ipdelordenador:9091". Esto se hace por virtualhost (si es así agradecería enormemente un ejemplo! ellos entrarían en este caso por transmission.midominio.es en el puerto 80), otro método o directamente no se puede? Querría hacer algo muy parecido a lo que quiere el autor del hilo pero en lugar de una página índice yo quiero usar subdominios (transmission.midominio.es, owncloud.midominio.es y similares)
<VirtualHost *:80>
ServerName transmission.midominio.es
CustomLog logs/apache.log combined
ErrorLog logs/apache.log
ProxyPass / "ipdelordenador:9091"
ProxyPassReverse / "ipdelordenador:9091"
</VirtualHost>