Creación de un entorno de escenario en red con el puerto 80 bloqueado
-
05-07-2019 - |
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.
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.