Configuración del servidor Web y gestión de conexiones

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 11.2 (Modificado)


4D, 4D Server incluyen un servidor Web que permite publicar de manera transparente y dinámica los datos de sus bases en la Web, de forma transparente y dinámica.

Esta sección describe los pasos necesarios para la publicación de bases 4D y para la conexión de navegadores, así como los procesos de gestión de conexiones.

Condiciones de publicación de una base 4D en la Web


Para poder publicar una base 4D en la Web con la ayuda de 4D, o 4D Server, debe disponer de los elementos descritos a continuación:

Una licencia "4D Web Application". Para mayor información, consulte la guía de instalación 4D.

Las conexiones Web son efectuadas por medio del protocolo de red TCP/IP. Por consiguiente:

- Debe tener el protocolo TCP/IP instalado y correctamente configurado en su equipo. Consulte la documentación de su ordenador o de su sistema operativo para mayor información sobre este punto.

- Si quiere utilizar el protocolo SSL para sus conexiones, asegúrese de que los componentes necesarios sean instalados correctamente (ver la sección Using SSL Protocol).

Una vez controlados y ajustados los puntos anteriores, debe iniciar el servidor Web dentro de 4D. Este último punto se discute más adelante en esta sección.

Autorización de publicación (4D en modo remoto)

Por defecto, todo equipo cliente 4D puede publicar en la Web la base a la cual está conectado. Sin embargo, puede controlar la posibilidad de publicación Web de cada cliente 4D utilizando el sistema de contraseñas de 4D.

De hecho, las licencias Web 4D son consideradas por 4D Server como licencias de plug-ins. Por lo tanto, de la misma forma que los plug-ins, debe restringir el uso de licencias Web Server a un grupo de usuarios específico.

Para hacer esto, muestre la página Grupos en Caja de herramientas desde 4D (debe disponer de las autorizaciones de acceso adecuadas para modificar estos parámetros).

Seleccione un grupo en la lista de la izquierda, luego seleccione la opción Acceso junto a la línea Web Server en el área de distribución de los plug-ins:

Arriba: sólo los usuarios que pertenecen al grupo "Web" están autorizados a publicar su 4D como servidor Web.

Configuración del servidor Web bajo Mac OS X


Bajo Mac OS X, la utilización de los puertos TCP/IP reservados a la publicación Web requiere de privilegios de acceso específicos: sólo el usuario "root" del equipo puede lanzar una aplicación utilizando estos puertos.

Se trata de los puertos 0 a 1023. Recuerde que, por defecto, una base 4D se publica en el puerto TCP 80 en modo estándar y en el puerto 443 en modo SSL.

Cuando publique una base 4D en el puerto TCP por defecto sin estar conectado como usuario "root", aparecerá una caja de diálogo de alerta:

Para utilizar el servidor Web bajo Mac OS X, tiene cuatro posibilidades:

Modificar los números de los puertos TCP utilizados por el servidor Web 4D.

Debe utilizar los números de puertos superiores a 1023, por ejemplo el puerto 8080 para el modo estándar y 8043 para el modo SSL.

Esta operación se efectúa en la caja de diálogo de Preferencias de la base (ver la sección Web Server Settings) o utilizando el comando SET DATABASE PARAMETER. En este caso, será necesario indicar el número de puerto después de cada URL de conexión a la base (por ejemplo, http://www.mibase.com/paginas/mipagina.html:8080) y https://www.mibase.com/paginas/mipagina.html:8043.

Conectarse como usuario "root"

Por defecto, el usuario "root" no está activo en un equipo bajo Mac OS X. Primero debe activarlo y luego conectarse con este nombre de usuario.

La activación del usuario "root" se efectúa utilizando el programa utilitario NetInfo Manager de Apple e instalado en la carpeta Aplicaciones:Utilidades.

Una vez lanzado el programa utilitario, elija el comando Seguridad en el menú Dominio, luego active la opción Activar usuario root. Primero debe haber identificado un administrador del equipo vía el comando Autenticar..., ubicado en el mismo menú (introduzca el nombre abreviado y la contraseña del administrador).

Para mayor información sobre esta operación, consulte la documentación Mac OS X.

Una vez el creado el usuario "root", debe cerrar la sesión (menú Manzana) y luego conectarse con el nombre de usuario "root". Luego puede lanzar el servidor Web en el puerto 80, o un servidor Web 4D con una conexión segura.

Transferir el puerto

Esta tercera solución le permite publicar una base Web 4D bajo Mac OS X sin que sea necesario especificar el número de puerto detrás de cada URL de conexión al servidor y sin ser el usuario "root". Está basada en la transferencia de puerto. El principio consiste en transferir, a nivel del sistema, la petición recibida en el puerto TCP estándar (80) al especificado en la base 4D (que debe ser mayor que 1023). Note que este consejo no funciona con conexiones seguras (el puerto TCP 443 no es modificable).

Para llevar a cabo esta operación, debe conectarse como usuario "root", lanzar el Terminal y utilizar los comandos Unix.

Para configurar la transferencia de puerto bajo Mac OS X (asumiendo que su dirección IP es 192.168.93.45):

1. Abra una sesión como usuario root(ver el párrafo anterior).

2. Lance el programa Terminal.

Este programa se encuentra en la carpeta Aplicaciones:Utilidades.

3. Introduzca "su" (cuenta especial "usuario substituto") seguido por la contraseña de usuario de la root.

4. Introduzca el siguiente comando:

ipfw add 400 fwd 192.168.93.45,8080 tcp from any to 192.168.93.45 80

Desde luego, usted debe reemplazar "192.168.93.45" con su propia dirección IP.

El número 400 es el número de referencia de esta operación.

5. Salga del programa Terminal.

6. Inicie su aplicación 4D como usuario estándar.

7. En las Preferencias de la base, defina el puerto TCP de publicación Web a 8080.

Desde ahora, Mac OSX está listo para transferir las peticiones recibidas en el puerto 80 al puerto 8080 instantáneamente y de manera transparente para el usuario.

Para eliminar este modo de operación:

1. Inicie el programa Terminal e introduzca:

ipfw delete 400

Las peticiones recibidas en el puerto 80 no serán transferidas al puerto 8080.

Abrir el puerto vía una aplicación especializada

El principio de esta solución consiste en delegar la apertura del puerto Web a una aplicación especializada, llamada HelperTool, que dispone de los privilegios de acceso apropiados. Este mecanismo funciona con 4D (todos los modos), 4D Server y las aplicaciones ejecutables 4D Volume Desktop.

La aplicación HelperTool está incluida en el software 4D. Debe instalarse en una ubicación específica del sistema. La instalación se efectúa automáticamente durante la primera apertura de un puerto <1024 en la máquina. El usuario es informado de que una herramienta va a ser instalada y se le pide introducir el nombre y contraseña del administrador de la máquina. Esta operación sólo se lleva a cabo una vez.

La aplicación se renombra "com.4D.HelperTool" y se instala en la carpeta "/Library/PrivilegedHelperTools/." Después de la secuencia inicial, el servidor Web de 4D Web puede iniciarse y detenerse de manera transparente.

Nota: este mecanismo necesita como mínimo de la versión 10.4.6 de Mac OS X. Si tiene una versión anterior del sistema, debe utilizar otra solución de publicación.

Iniciar el servidor Web 4D


El servidor Web 4D puede iniciarse de tres maneras diferentes:

Por medio del menú Ejecutar de 4D o de la página Servidor HTTP (botón Iniciar servidor HTTP) en 4D Server. El menú del servidor Web le permite iniciar y detener el servidor Web en cualquier momento:

4D:

4D Server:

Para la publicación automática de la base en la Web cada vez que se abre, vaya a la página Configuración del tema Web de las Preferencias de la aplicación:

En la sección Publicación del servidor Web, seleccione la casilla de selección Publicar la base al iniciar, luego haga clic en Aceptar. La base se publicará automáticamente como servidor Web cada vez que la abra con 4D o 4D Server.

Por programación, llamando el comando START WEB SERVER.

Tip: No es necesario salir de 4D y reabrir su base para iniciar o detener la publicación de una base en la Web. Puede interrumpir y reiniciar el servidor Web tantas veces como sea necesario, utilizando el menú Ejecutar o llamando a los comandos START WEB SERVER y STOP WEB SERVER.

Probar el servidor Web


El comando Probar servidor Web permite controlar el funcionamiento del servidor Web integrado (4D únicamente). Este comando es accesible en el menú Ejecutar cuando se lanza el servidor Web:

Cuando selecciona este comando, la página de inicio del sitio Web publicado por la aplicación 4D se muestra en una ventana de su navegador Web por defecto:

Este comando permite verificar el funcionamiento del servidor Web, la visualización de la página de inicio, etc. La página se llama utilizando el URL Localhost, que es el atajo estándar que designa el atajo estándar de la dirección IP del equipo en el cual se ejecuta el navegador. El comando tiene en cuenta el número de puerto TCP de publicación especificado en las Preferencias de la aplicación.

Conexión a una base 4D publicada en la Web


Una vez haya iniciado la publicación de una base 4D en la Web, puede conectarse utilizando un navegador Web. Para hacer esto:

Si su sitio Web tiene un nombre registrado (por ejemplo, " www.floresbonitas.com"), indique este nombre en el área Abrir, Dirección, o Ubicación de su navegador. Luego presione Enter para conectarse.

Si su sitio Web no tiene un nombre registrado, indique la dirección IP de su equipo (por ejemplo, 123.4.567.89) en el área Abrir, Dirección, o Ubicación de su navegador. Luego presione Enter para conectarse.

En este momento, su navegador debe mostrar la página de inicio de su sitio Web. Si ha publicado una base conservando la configuración estándar, debe obtener la página de inicio por defeco del servidor Web de 4D. Esta página le permite probar la conexión y el funcionamiento del servidor.

También puede encontrarse con una de las siguientes situaciones:

1. La conexión falla y usted obtiene un mensaje del tipo "...el servidor no acepta las condiciones o puede estar ocupado...". En este caso, efectúe los siguientes controles:

Verifique que el nombre o la dirección IP que introdujo sea correcta.

Verifique que 4D o 4D Server esté bien lanzado y que el servidor Web haya sido iniciado.

Verifique que la base de datos esté bien configurada para ser publicada en el puerto TCP Web por defecto, es decir el 80 (ver la situación 4).

Verifique que el protocolo de red TCP/IP esté configurado correctamente en el equipo servidor y en el equipo del navegador. Ambos equipos deben estar en la misma red y subred, o sus ruteadores deben estar correctamente configurados.

Verifique las conexiones físicas.

Si no prueba localmente su propio sitio, sino que trata de conectarse a una base Web publicada en Internet o Intranet por alguien más, puede que finalmente el mensaje sea cierto: el servidor puede estar apagado u ocupado. De manera que intente nuevamente hasta que pueda conectarse, o contacte a su proveedor Web.

2. Se establece la conexión, pero obtiene un error HTTP 404 "Archivo no encontrado". Esto significa que la página inicio del sitio no ha sido servida. En este caso, verifique que la página de inicio actual existe en la ubicación definida en las Preferencias de la base (ver la sección Web Server Settings) o utilice el comando SET HOME PAGE.

3. Se establece la conexión, pero obtiene una página Web con el mensaje "Barra de menús/Esta base de datos no puede publicarse en la Web, primero debe crear una barra de menús". Esto significa que se conectó correctamente a la base publicada en modo contextual pero que ninguna página de inicio ni barra de menús está definida (en modo contextual, 4D publica la barra de menús #1 como página de inicio por defecto si ninguna página HTML se especifica). Para mayor información, consulte la sección Your First Time with the Web Server.

4. Se establece la conexión, pero ¡NO obtiene la página Web que esperaba! Esto puede ocurrir cuando tiene varios servidores Web se ejecutan simultáneamente en el mismo equipo. Ejemplos:

Usted lanzó una sola base Web 4D, en un sistema Windows que ya ejecuta su propio servidor Web.

Usted está corriendo varias bases Web 4D Web sobre el mismo equipo.

En este tipo de situación, necesita cambiar el puerto TCP en el cual su base 4D Web se publica. Para hacer esto, consulte la sección Web Server Settings.

Nota: Si su base está protegida por un sistema de contraseñas, podría tener que introducir un nombre de usuario y contraseña válidos (para mayor información, consulte la sección Connection Security).

Gestión de los procesos Web


Varios procesos 4D soportan la publicación Web de las bases de datos y la conexión de los navegadores. Este párrafo describe estos procesos como también sus características.

Proceso Servidor Web

El proceso Servidor Web se ejecuta cuando la base se publica como servidor Web.

En la página Proceso del Explorador de ejecución que se presenta a continuación, el proceso Servidor Web es el quinto proceso:

Este proceso es un proceso kernel de 4D; no puede abortar este proceso utilizando el botón Abortar. De la misma forma, no puede efectuar comunicación interproceso con la ayuda de comandos como CALL PROCESS. Note que el proceso Servidor Web no tiene elementos de interfaz de usuario (ventanas, menús, etc.).

Puede iniciar el proceso Servidor Web de las siguientes formas:

Clic en el botón Iniciar servidor HTTP de la página Servidor HTTP de 4D Server o Elija Arrancar el servidor Web en el menú Ejecutar de 4D.

Llamando el comando START WEB SERVER.

Abriendo una base cuya preferencia Publicar base al iniciar esté seleccionada.

Puede detener la ejecución del proceso Servidor Web de estas formas:

Clic en el botón Detener servidor HTTP de la página Servidor HTTP de 4D Server o Elija Detener el servidor Web en el menú Ejecutar de 4D.

Llamando el comando STOP WEB SERVER.

Saliendo de la base publicada como servidor Web.

El propósito del proceso Servidor Web es generar intentos de conexión Web. Iniciar el proceso Servidor Web no significa que usted abre una conexión Web, sólo significa que usted permite a los usuarios Web conectarse a la base. Detener el proceso Servidor Web, no significa que usted cierre las los procesos de conexión Web abiertos (si los hay), sólo significa que no permite más que los usuarios Web se conecten a la base.

Si hay procesos de conexión Web abiertos cuando detiene el proceso Servidor Web, cada uno de estos procesos continúa ejecutándose normalmente.

Por lo tanto, un tiempo de retraso puede ser necesario para completar el proceso del Servidor Web.

Procesos de conexión Web


Cada vez que un navegador Web intenta conectarse a la base, la petición es manejada por el proceso Servidor Web, la cual realiza los siguientes pasos:

Primero, crea uno o varios procesos 4D locales llamados Procesos Web para evaluar y administrar la conexión con el navegador Web.

Nota: Estos procesos administran todas las peticiones HTTP. Ellos ejecutan rápidamente y luego son abortados o retrasados. Para que el servidor Web se reactive en modo no contextual, 4D congela este "conjunto" de procesos Web por 5 segundos y los reutiliza para ejecutar futuras peticiones HTTP. Puede personalizar este comportamiento utilizando el comando SET DATABASE PARAMETER.

Si la petición no necesita la creación de un contexto, el proceso Web se encarga del procesamiento de la petición y envía una respuesta (si es necesario) al navegador. El proceso temporal luego se aborta o retrasa (ver arriba).

Si la petición necesita la creación de un contexto, verifica si hay los recursos disponibles para la nueva conexión. Si este no es el caso, envía el siguiente mensaje al navegador Web: "Esta base no ha sido configurada aún para la Web."

Si la conexión Web se efectúa correctamente, se crea un proceso Conexión Web. Este es el proceso que administrará toda la sesión Web para esa conexión. La lista de los procesos, mostrada a continuación, muestra el proceso de conexión Web "Web Connection# 152142900," iniciado después de la conexión del navegador Web:

Note que el sexto proceso, que se inició y luego abortó, administró la inicialización de la conexión Web.

Nota: Para mayor información sobre la gestión de contextos, consulte la sección Using the Contextual Mode.

Si, durante la sesión, la conexión pasa de modo contextual a modo no contextual, el proceso de conexión Web (numerado) se aborta.

Por el contrario, si durante la sesión, la conexión pasa de modo no contextual a modo contextual, se crea un proceso de conexión Web numerado.

Ver también

SEND HTML FILE, SET HTML ROOT, SET WEB DISPLAY LIMITS, SET WEB TIMEOUT, STOP WEB SERVER, Utilizar el protocolo SSL.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente