2008-12-02 15 views
5

Sé cómo configurar un servidor web local usando xampp en Windows ... Ingreso mi alias y destino en el archivo de hosts (c: \ windows \ system32 \ drivers \ etc \ hosts) y luego agrego una entrada respectiva en mi archivo de configuración de apache vhosts. De esta forma, suponiendo que mi servidor web esté escuchando el puerto 80, puedo, por ejemplo, asignar example.com a mi servidor web local.¿Se puede reenviar solo en un solo puerto 8080 a localhost (windows)?

Siempre hemos entrado en todo el nombre de dominio (es decir, por ejemplo, example.com) en mi archivo de hosts y cualquier petición de ese nombre se dirigirían a localhost.

Ahora me preguntaba si hay una manera de solo reenviar example.com en un determinado puerto (por ejemplo solo example.com:8080) al servidor web local, y dejar example.com (en el puerto predeterminado 80) solo, de modo que todavía iría a mi sitio web de producción en vivo.

Por lo que yo entiendo esto podría no ser posible utilizando sólo el archivo hosts (He intentado añadir el puerto: 8080 a mis nombres de dominio - no parecía el trabajo ;-)) ...

Realmente No sé mucho sobre este tema, por lo que cualquier idea, perspectiva, enlace, material de lectura, herramientas son bienvenidas.

Editar: respuesta de Arnout responde a la pregunta que he hecho anteriormente, pero no resuelve mi problema real. Reencaminamiento example.com: 8080 a localhost: 80 funciona y si accedo a example.com, carga la página principal de mi versión local, pero todos los enlaces en esa página, por supuesto, no conocen el número de puerto y, por lo tanto, apuntan a la versión de producción ... La solución real a mi problema parece ser morder la manzana agria y reparar mi aplicación (siguiendo la sugerencia de Rob) y eliminar todas las URL codificadas, para que funcione en cualquier dominio ...

Respuesta

4

Internet Junkbuster (un servidor proxy) puede hacerlo utilizando su funcionalidad forwarding.

Sólo añadir una línea como

example.com:8080 localhost:80 . . 

a sforward.ini y elimine la línea forwardfile en junkbstr.ini. Ahora configura tu navegador para usar un proxyserver que se ejecute en el puerto 8000 de localhost, y estás listo.

Estoy seguro de que otros servidores proxy tienen una función similar — Me gusta Junkbuster ya que es un simple ejecutable independiente.

+0

Esto funciona y responde mi pregunta inicial ... ;-) – Ben

2

Estás jugando en el área de servicios de nombres de dominio (DNS). Técnicamente, con una configuración avanzada de DNS (que puede incluir puertos de reasignación), lo que usted propone es posible y se realiza de manera rutinaria en Internet. Sin embargo, es poco probable que desee tener tantos problemas y gastos a nivel local.

Por otra parte, sospecho que su verdadero problema puede ser abordado con mayor facilidad. ¿Por qué querría que "example.com" se resuelva en su servidor web local? Ya puede hacer referencia a su servidor web local como "localhost", como "127.0.0.1", y a través del nombre asignado de su máquina "workstation-x".

La única razón que puedo pensar, y que he visto, por querer hacer referencia a su servidor web local con el mismo nombre de host que su servidor web de producción es debido a la codificación del nombre de host del servidor en sus enlaces dentro de las páginas web de tu aplicación. Si ese es el caso aquí, la respuesta es simple: ¡no! SIEMPRE debe implementar sus aplicaciones web para que hagan referencia a todo (otras páginas, CSS, JS, imágenes, etc.) en relación con el servidor desplegado. Si se implementa en varios servidores, sus referencias deben basarse en absoluto en los nombres de host del servidor configurables. Esto es fácil de hacer, y no hay razón para no hacerlo.

Si este no es el caso, entonces por favor explique lo que está tratando de lograr y lo que motiva a tratar.

EDITAR: Dado que ha confirmado mi suposición de que el problema son las referencias cifradas al nombre de host de producción en las páginas web, permítanme simplemente agregar que SIEMPRE, SIN EXCEPCIÓN, encontré que es más barato reparar el problema real que acumular soluciones (como su intento de remapear puertos). Nunca me he encontrado con un autor que haya argumentado lo contrario.

Reparar las páginas debería ser un poco más difícil que una búsqueda global & reemplazar, especialmente con un editor de texto decente. Incluso escribir un guión simple para cambiar los archivos fuente sería mucho más barato y más fácil que tus intentos de solucionarlo.

En cualquier caso, le deseamos lo mejor y háganos saber cómo resultó.

+0

No creo que esto esté relacionado con el DNS. El DNS no se preocupa por los puertos, solo por los nombres de host y las direcciones IP. – Arnout

+0

Bueno, sí, lamentablemente está codificado y no puedo hacer mucho al respecto. Sé que la forma en que lo está describiendo es cómo debe hacerse, pero a veces, especialmente cuando se trabaja con código anterior, es posible que no tenga otra opción; y simplemente usar un puerto diferente parece "más barato" que una reescritura de software ... – Ben

0

¿Puede confirmar si el puerto 8080 está escuchando en el servidor web? use el comando "netstat -na" para ver si el puerto 8080 está escuchando.

¿Agregó el puerto 8080 en el archivo de configuración de Apache como el mismo puerto 80 predeterminado?

Una vez que haya agregado el puerto 8080 en el archivo de configuración de Apache para escucharlo y verificar si el puerto 8080 está escuchando en el servidor web, podrá acceder a la página usando el puerto 8080. Como http://mytestwebserver:8080/index.html o algo así ...

Cuestiones relacionadas