Configuración de vLanzadera en Apache en servidores propietarios
En esta guía se detallan los pasos para configurar Velneo vModApache y la vLanzadera para que funcione en servidores propietarios en plataformas Windows o Linux.
Paso 1 - Instalación de Apache
Es requisito obligatorio instalar Apache en la misma máquina donde tengamos instalado Velneo vServer.
Windows
Recomendamos el uso de Apache Haus para seguir esta documentación, ya que las sendas y cambios que se indican en esta documentación son para esta distribución de Apache Haus. Si usas Apache de otra manera, tendrás que adaptar las indicaciones de la documentación a la distribución que utilices.
Consulta con un experto en despliegue Web para problemas que puedas encontrar en la instalación y despliegue de Apache.
En la página de descargas descargar la versión con OpenSSL1.1.1 e importante, la versión x64.
Al descomprimir el zip, obtenemos un directorio que tiene un readme_first.html con la documentación de Apache Haus (recomendamos leerlo) y un directorio de Apache24.
Para facilitar la configuración, recomendamos renombrar el directorio de "Apache24" a "apache2" y moverlo al homepath del usuario del servicio vatp que, si está asociado a la cuenta de sistema local, está ubicado en:
C:\Windows\System32\config\systemprofile
Editar el fichero:
C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf
Buscar la línea con el siguiente código:
Define SRVROOT "Apache24"
Y sustituirlo por:
Define SRVROOT "C:/Windows/System32/config/systemprofile/apache2"
Abrir en una terminal cmd o powershell como administrador (click derecho sobre cmd o powershell y ejecutar como administrador) y poner los siguientes comandos:
Ahora ya tenemos Apache como servicio.
Abrimos el panel de servicios en Windows y debería haber un servicio llamado Apache2.X. Iniciamos el servicio.
En este punto habría que obtener y configurar un certificado ssl para el dominio que se vaya a usar en el servidor. A lo largo de esta documentación hacemos referencia a mi-dominio.
Para ello debemos hacer lo siguiente:
Alojar los ficheros del certificado en la carpeta:
C:\Windows\System32\config\systemprofile\apache2\conf\ssl
Editamos el fichero httpd-ahssl.conf dentro del directorio C:\Windows\System32\config\systemprofile\apache2\conf\extra
y comprobamos que estén descomentadas las siguientes líneas:
En el que sustituiremos "mi-dominio.crt" y "mi-dominioi.key" por los nombres de ficheros de certificado y clave de nuestro propio certificado.
También debemos editar la línea:
Y reemplazarla por:
Reinicia el servicio de Apache.
Para probar que hasta este punto está todo correcto, probar a cargar https://mi-dominio (es importante que sea https). Si hasta este punto está todo correcto te debería de cargar la página de bienvenida de Apache.
Recomendamos no continuar con los siguientes pasos hasta que no se cumpla esta validación.
Eliminamos el siguiente directorio:
C:\Windows\System32\config\systemprofile\apache2\htdocs
Creamos el siguiente directorio:
C:\Windows\System32\config\systemprofile\apache2\html
Dentro creamos un fichero llamado index.html y le agregamos un contenido cualquiera. Por ejemplo: "Hola mundo".
Editamos el fichero:
C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf
Y hacemos la siguiente modificación:
Sustituir:
Por:
Editamos el fichero:
C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf
Y hacer la siguiente modificación:
Sustituir:
Por:
Sustituir:
Por:
Reiniciar el servicio de Apache2 y acceder a https://mi-dominio.
Ahora en vez de mostrar la página de bienvenida de Apache, debe mostrar el contenido que has puesto en el fichero de index.html. Si es así, puedes continuar con el siguiente paso.
Linux
Esta documentación ha sido elaborada tomando como base la distribución de Ubuntu 20. Si usas otro distribución operativo tendrás que adaptar la configuración en caso de que la estructura de directorios no sea la misma.
En primer lugar abrir una terminal y actualizar el repositorio de aplicaciones ejecutando el comando:
$sudo apt update
A continuación instalar Apache2 con el comando:
Comprobar que se ha creado el siguiente directorio:
/etc/apache2
A continuación vamos a activar el SSL que es obligatorio para ejecutar Lanzadera y que funcione la ejecución Web.
En este punto habría que configurar previamente un certificado ssl para el dominio que se va a usar. En el paso 1 hay indicaciones de como incluir los certificados en Apache. Según hemos indicado antes, en esta documentación suponemos que tenemos un certificado para un dominio llamado "mi-dominio".
Accede a https://mi-dominio (es importante que sea https) Si hasta este punto está todo correcto te debería de cargar la página de bienvenida de Apache.
A continuación, para el correcto funcionamiento de la vLanzadera en futuros pasos, hay que cambiar el DocumentRoot que por defecto viene en /var/www/html
Ejecutar el siguiente comando para editar la configuración:
$sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Se abrirá un editor de texto. Buscar la línea que pone:
Y sustituirla por:
En este paso, suponemos y recomendamos para seguir la documentación que el usuario de Linux que va a ejecutar el vServer es velneo. Si no es así, en la senda cambiar "velneo" por el nombre de usuario que corresponda. Para el usuario root, las rutas cambian como indicamos.
Editar el fichero de apache2.conf:
$sudo nano /etc/apache2/apache2.conf
Buscar la línea con lo siguiente:
Y cambiarla por:
A continuación, hay que crear esa senda y crear un fichero html en ella:
Añadirle permisos de ejecución a la senda para que apache pueda acceder:
Editar el fichero de index:
Y escribir cualquier contenido, por ejemplo "Hola Mundo".
Reinicia Apache y vuelve a acceder a https://mi-dominio.
Ahora en vez de mostrar la página de bienvenida de Apache, debe mostrar el contenido que has puesto en el fichero de index.html. Si es así, puedes continuar con el siguiente paso.
Paso 2 - Instalación de vServer (servicio vatp)
Windows
Revisar los requerimientos de la versión.
Sigue los pasos indicados en la documentación para instalar vServer en Windows.
Sigue los pasos de la documentación para incluir un certificado ssl propio (recuerda que en este punto ya has puesto en marcha los certificados en Apache así que será configurar la misma senda de ambos ficheros en el servidor).
Es importante que tanto el vServer como el Apache respondan a través del mismo dominio (mi-dominio.com)
Una vez instalado Velneo vServer, hacer las siguientes comprobaciones:
Al arrancar el servicio, comprueba desde el vAdmin los siguientes mensajes:
Que el servicio vatp se ha arrancado correctamente con la licencia: busca en el log el mensaje de inicio similar a este: "Servidor vatp de 64 bits iniciado con licencia [....]. Versión: XX.X.X.XXXXX , Puerto: 690, Puestos de edición: X, Puestos de ejecución: X, Código de licencia: xxx-xxxx-xxx".
Comprueba el puerto vatp, lo necesitamos más adelante.
Busca en los mensajes de Velneo vAdim una entrada de inicio similar a la siguiente: "Cifrado de VATPS activado, certificado ssl: xxxx. Válido hasta el xxxx".
Localiza el mensaje de "Servidor websockets iniciado en puerto xxx" Necesitamos el puerto más adelante.
Linux
Para no tener problemas siguiendo la guía, recomendamos ejecutar Velneo vServer como servicio con un usuario llamado velneo en un puerto superior al 1024. Si lo ejecutas con otro usuario, deberás adaptar algunas instrucciones. Si decides ejecutar el vServer con root ten en cuenta que debes seguir las instrucciones para root y no para el usuario velneo.
Revisar los requerimientos de la versión actual. Realizar las configuraciones en la máquina e instalar librerías que falten.
Sigue los pasos de la documentación para instalar vServer en Linux.
Sigue los pasos de la documentación para incluir un certificado ssl propio
Una vez instalado Velneo vServer, hacer las siguientes comprobaciones.
Una vez instalado Velneo vServer, hacer las siguientes comprobaciones:
Al arrancar el servicio, comprueba desde el vAdmin los siguientes mensajes:
Que el servicio vatp se ha arrancado correctamente con la licencia: busca en el log el mensaje de inicio similar a este: "Servidor vatp de 64 bits iniciado con licencia [....]. Versión: XX.X.X.XXXXX , Puerto: 690, Puestos de edición: X, Puestos de ejecución: X, Código de licencia: xxx-xxxx-xxx".
Comprueba el puerto vatp, lo necesitamos más adelante.
Busca en los mensajes de Velneo vAdim una entrada de inicio similar a la siguiente: "Cifrado de VATPS activado, certificado ssl: xxxx. Válido hasta el xxxx".
Localiza el mensaje de "Servidor websockets iniciado en puerto xxx" Necesitamos el puerto más adelante.
Paso 3 - Instalación de vLanzadera
Ver el punto Aplicación vLanzadera y login social.
Una vez instalada, al ejecutar la aplicación se abre el formulario principal que muestra, en caso de que los haya, una lista de errores a solucionar.
Creación de clave para login con jwt
La lanzadera utiliza JWT para intercambiar información con el servidor. Para garantizar y securizar el intercambio de información entre la lanzadera y Velneo vServer, es necesario especificar una clave JWT en el registro de Velneo vServer.
En Windows, debemos crear dentro de la clave HKEY_USERS.DEFAULT\Software\Velneo\vServer una entrada de tipo cadena llamada jwtKey y establecer la clave que queramos usar.
En Linux, debemos editar el fichero vServer.conf y, si no la tenemos ya, añadir una línea que contenga la propiedad:
jwtKey=TU_CLAVE_JWT_DE_32
La clave JWT debe tener una longitud mínima de 32 caracteres.
De forma opcional, se puede configurar un parámetro de tiempo de validez del token.
jwtExpiredSeconds=NUMERICO_SEGUNDOS
Por seguridad el servidor solo aceptará el token generado por la lanzadera durante los siguientes jwtExpiredSeconds segundos más 60 segundos de cortesía por si hay desviación de la hora entre el cliente y el servidor.
Si no se configura el parámetro tendrá un valor por defecto de 60 segundos.
Por temas de seguridad, la clave JWT solo debe ser conocida por el administrador.
Asegúrate de reinciar Velneo vServer tras la configuración. Si la configuración no se hace correctamente, aparece un error en el formulario de inicio de vLanzadera con el siguiente mensaje:
Para hacer login con la vLanzadera es necesario que esté definida una clave jwt. Consulta la documentación. La vLanzadera devolverá un error -1 si se intenta utilizar en este estado.
Posibles errores
Error al crear directorio /senda/directorio
Si al abrir vLanzadera hay un error "Error al crear directorio /senda/directorio", quiere decir que en el paso 1 no hemos creado correctamente los directorios, o que estos no tienen los permisos necesarios y vServer no puede acceder. Verifica que todas las instrucciones del paso 1 se han seguido correctamente.
Error descarga: senda/fichero
Si al abrir vLanzadera hay un error de “Error descarga: senda/fichero” quiere decir que en el paso 1 no hemos creado correctamente los directorios, o que estos no tienen los permisos necesarios y vServer no puede acceder. Verifica que todas las instrucciones del paso 1 se han seguido correctamente. Continúa con el siguiente paso cuando la vLanzadera no muestre errores en el formulario de inicio.
Paso 4 - Instalación y configuración de vModApache
Sigue los pasos de la documentación de vModApache para instalarlo y configurarlo.
Configura una directiva location para cargar vLanzadera, donde la "senda_base” indicada en la documentación debe ser "/auth" y apuntar a la instancia de vLanzadera creada en el paso 3.
Windows
En C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf, dentro del bloque Virtualhost y antes del cierre de etiqueta de virtualhost:
Linux
En /etc/apache2/sites-enabled/default-ssl.conf, dentro del bloque Virtualhost y antes del cierre de etiqueta de virtualhost:
Continúa con el siguiente paso cuando al arrancar apache2, puedas ver un enganche que pertenece a vModApache a la instancia de vLanzadera. Al desconectar el servicio debería de desconectarse el enganche.
Paso 5 - Configuración adicional de apache para la vLanzadera
Crear un fichero vLanzadera.conf en la siguiente ruta:
Añadir el siguiente contenido al fichero:
En windows
Editar C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf
Localiza y descomenta las siguientes líneas:
Modifica el fichero C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf
, y al final, antes de la directiva añade un include al fichero vLanzadera.conf quedando de la siguiente manera:
Reinicia el servicio de apache2.
A continuación hay que añadir un RewriteRule para que el sitio raíz (el que devuelve el index.html del “Hola mundo”) responda con vLanzadera. Para ello editamos el fichero C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf
y buscamos el siguiente bloque:
Y le añadimos el rewrite rule para que quede de la siguiente manera:
Para comprobar que de momento tenemos todo correcto, debemos reiniciar Apache y luego verificar que, https://mi-dominio ahora debe devolver lo mismo que https://mi-dominio/auth.
En linux
Ejecutar los siguientes comandos:
Edita el fichero /etc/apache2/sites-enabled/default-ssl.conf
e inserta lo siguiente al final del documento antes de la etiqueta de cierre de </VirtualHost> de modo que quede así:
Reinicia el servicio de Apache:
$sudo service apache2 restart
En este punto, al cargar https://mi-dominio/auth, debería aparecerte una página en blanco, pero la pestaña debería tener el título de "Lanzadera".
A continuación hay que añadir un RewriteRule para que el sitio raíz (el que devuelve el index.html del "Hola mundo") responda con vLanzadera. Para ello:
Editamos el fichero /etc/apache2/apache2.conf
y buscamos el siguiente bloque:
Y le añadimos el RewriteRule quedando así:
Para comprobar que tenemos todo correcto, reiniciar Apache y entonces https://mi-dominio ahora debe devolver lo mismo que https://mi-dominio/auth.
En este punto, vLanzadera ya debería funcionar correctamente y ser capaz de ejecutar las aplicaciones en web. Si hay algún fallo, asegúrate de que no se ha cacheado una configuración incorrecta a lo largo del proceso limpiando la caché del navegador o probando con el modo incógnito.
Configuración adicional para intranets
En intranets en las que no se vaya a hacer uso de Internet se han de descargar los recursos de Velneo Web desde nuestra página de descargas.
Se trata de un fichero comprimido que contiene una serie de carpetas y ficheros.
El ese fichero comprimido se incluye el vin de vLanzadera, que en este punto ya tendremos instalado y hecha la configuración inicial.
La configuración adicional que debemos hacer es la siguiente:
Copiar del zip todo el contenido de la carpeta
assets-wasm/vLanzadera/35.0/assets/
En disco, borrar el contenido de la carpeta
apache2/html/35.0/assets
.Pegar lo que hemos copiado del zip.
Copiar del zip todo el contenido de la carpeta
wasm-assets/vLanzadera/vLanzadera/35.0/assets
En el disco, borrar todo el contenido de la carpeta
apache2/html/vLanzadera/35.0/assets
Pegar lo que hemos copiado del zip.
Copiar del zip todo el contenido de la carpeta
wasm-assets/vLanzadera/vLanzadera/assets
.En el disco, borrar todo el contenido de la carpeta
apache2/html/vLanzadera/assets
.Pegar lo que hemos copiado del zip.
Ejecutar vLanzadera con Velneo vClient y en estáticos, editar los 3 registros, activar el check personalizado y reempalzar el código fuente de cada uno por el equivalente incluido en la carpeta
wasm-assets/vLanzadera/vLanzadera/estaticos
del zip.
Proxy para redirigir el tráfico WSS al puerto 443
Por defecto, para websockets (necesarios para la ejecución web) se usa el puerto que tenga nuestro servidor + 9. Es decir, que si el puerto del servidor es el 690, para Websockets se usa el 699. En el caso de que queramos usar en su lugar el puerto estándar 443, será necesario realizar configuración adicional en Apache y en vLanzadera.
Si usábamos un RewriteRule
para usar la raíz del host para servir la lanzadera, hay que añadirle un RewriteCond: RewriteCond %{HTTP:Upgrade} !=websocket [NC]
para que no aplique esa redirección a las peticiones wss. La directiva <directory>
quedaría así (se ha insertado la línea 8):
Fuera de la directiva <directory>
hay que declarar otro RewriteRule para redirigir las peticiones wss que llegan del puerto 443 al puerto vatp + 9 (699 en el ejemplo) y configurar el proxy inverso (se añaden las líneas 12 a 19) :
Además, será necesario habilitar una serie de módulos adicionales en Apache.
En Windows se suelen configurarse en el fichero httpd.conf:
Para activarlos en Linux, en distribuciones como Ubuntu o Debian, podemos usar el comando a2enmod
, que está diseñado para habilitar módulos de Apache:
Última actualización