Pregunta

Actualmente utilizo mi servidor web local para permitir a los clientes obtener una vista previa de algunas aplicaciones y también para permitir descargas de " compilaciones nocturnas " de mi biblioteca de código abierto.

El problema es que cambié mi ISP y ahora mi puerto 80 está bloqueado.

Aunque sé que podría cambiar fácilmente el puerto en el servidor Apache, me gustaría evitar eso a menos que no haya otra alternativa.

¿Conoces algún servicio de terceros (gratuito o de pago) que haría un envío a mi sitio web, haciéndolo transparente para que alguien lo acceda?

Otra idea que escuché sobre el uso de la reescritura de mod de mi host web actual para volver a escribir en mi dominio, pero también preferiría no seguir esta ruta. Además de eso, ¿conoces algún ejemplo de .htaccess que realmente funcione? He intentado esto:

RewriteEngine on
RewriteRule ^/(.*) http://www.example.com:8080/$1

Pero no parece estar funcionando.

¿Fue útil?

Solución

  

Lo que me gustaría es que el cliente lo haga   tipo    http://myaddress.com/hello/there?a=1&b=2   y se traduce a    http://mylocalserver.com:8080/hello/there?a=1& b = 2   y de nuevo al cliente en una   forma transparente.

Creo que esta es la Apache RewriteRule que estás buscando para redireccionar cualquier URL:

RewriteRule ^(.*)$ http://mylocalserver.com:8080$1 [R]

A partir de ese momento, el cliente navegará por mylocalserver.com:8080 y eso es lo que verán en la barra de direcciones. Si a qué te refieres con " y viceversa " es que aún piensan que están navegando en myaddress.com , entonces lo que estás hablando es un servidor proxy de reescritura.

Con esto, quiero decir que tendría que volver a escribir todas las URL no solo en los encabezados HTTP sino también en su contenido HTML (es decir, realizar una búsqueda de expresiones regulares / reemplazar en el HTML), y descodificar, reescribir y reenviar todo GET, POST , PONER datos también. Una vez escribí un proxy así, y déjame decirte que no es un ejercicio trivial, aunque el principio pueda parecer simple.

Yo diría, simplemente sé feliz si puedes hacer que funcione la redirección y déjalos navegar por mylocalserver.com:8080 a partir de ese momento.

Otros consejos

" y de vuelta al cliente de manera transparente " .... será atendido por NAT para que no sea un problema.

Para manejar la traducción de la solicitud de una cadena a otra, eso es un problema, ya que necesita transformar la solicitud antes de que llegue al servidor. Busque en algún tipo de servicio de reenvío de URL

http://www.dnsexit.com/Direct.sv?cmd=webforward

También puede configurar un sitio separado en un servidor de proveedor y pedirle que reenvíe las solicitudes a la dirección / enlace específico de su servidor.

Espero que esto ayude!

Con el puerto 80 bloqueado, el enrutamiento a través del servicio dinámico no ayuda, a menos que el cliente especifique el nuevo puerto en el dominio.

Haga que su enrutador local "port-forward" el tráfico desde un nuevo puerto (por ejemplo, 8080) al puerto 80. Deja todo igual en tu extremo.

Cree una cuenta con DynDNS.org y configure su servicio dinámico. Luego, pídale a su cliente que haga http://mydomain.com:8080

Eso debería hacer el truco

Sigue investigando la sugerencia de Rolf, ya que no son ISP reales, ... en serio.

Gracias

Si no puede hacer que su ISP le abra el puerto 80 y no puede cambiar de ISP, entonces use la directiva de redireccionamiento htacccess:

Redirect 301 / http://yourserver.com:8000/

Los usuarios pueden notar la redirección, pero probablemente no les importará.

Bueno, aunque aprecié las respuestas, no estaba del todo satisfecho con el resultado final. Quería que los cambios de mi ISP fueran transparentes para mis clientes y creo que logré que funcionaran.

Esto es lo que hice:

Contraté un servidor VPS barato - VPSLink - y elegí su plan más barato: 64Mb RAM, 2Gb HD y 1Gb tráfico mensual Después de un descuento del 10% de por vida, solo costaba US $ 7,16 por mes, era bastante asequible para el trabajo y obtienes un servidor VPS de espacio aislado como bonificación. El hosting parece hasta ahora tan bueno, sin problemas. Si desea darle una oportunidad, puede registrarse desde su sitio, indicado anteriormente o mediante un código de referencia. Hay un montón disponible en internet, solo necesitas buscar. Además, puedo crear fácilmente uno para usted si lo desea, solo deje un comentario sobre esta respuesta: obtendrá un 10% de descuento y un mes gratis. No publicaré directamente aquí porque puede parecer que esa fue la intención detrás de esta publicación, lo cual no fue así.

Esta cuenta no está administrada pero proporciona acceso de raíz. Luego configuré Apache para que actuara como un Proxy a mis solicitudes del puerto 80, reenviándolas de manera transparente a mi sitio web local en el puerto 8081.

A continuación se muestran algunos fragmentos de los archivos de configuración httpd.conf de mi Apache.

Configuración del servidor VPS:

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com *.mydomain.com
    RewriteEngine On
    RewriteCond %{HTTP_HOST} (.*)\.mydomain\.com [NC]
    RewriteRule (.*) http://mylocalserverdns.mydomain.com:8081/%1$1 [P]
</VirtualHost>

Esto hace una solicitud como http://subdomain1.mydomain.com/script?a=b se reenviará de forma transparente en el lado del servidor a http: // mylocalserverdns. mydomain.com:8081/subdomain1/script?a=b , así que puedo hacer lo que quiera desde allí.

En mi servidor local, hice lo mismo para distribuir mi controlador de subdominios. Tengo, por ejemplo, dos aplicaciones de servidor Java que se ejecutan en los puertos 8088 y 8089 localmente. Todo lo que tenía que hacer era otro proxy hacia adelante, ahora internamente

Configuración del servidor local:

<VirtualHost *:8081>
    ServerName mylocalserverdns.mydomain.com

    ProxyPass /app1 http://127.0.0.1:8088
    ProxyPassReverse /app1 http://127.0.0.1:8088
    ProxyPassReverse /app1 http://mylocalserverdns.mydomain.com:8088/app1

    ProxyPass /app2 http://127.0.0.1:8089
    ProxyPassReverse /app2 http://127.0.0.1:8089
    ProxyPassReverse /app2 http://mylocalserverdns.mydomain.com:8089/app2
</VirtualHost>

Espero que esto valga la pena si alguien más está buscando la misma alternativa.

Creo que la mayoría de los servicios DynamicDNS permiten el reenvío de puertos.

Pregunte a su ISP por qué esto es así, y si no obtiene una respuesta, vuelva a cambiar los ISP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top