Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Subir Servidor Datasnap a un Hosting (https://www.clubdelphi.com/foros/showthread.php?t=94768)

omarperez.qui 06-07-2020 18:47:52

Subir Servidor Datasnap a un Hosting
 
Buenas- Ante todo pido disculpas por el desconocimiento del tema, he buscado en otros hilos y he leído por ej. el blog de German Estevez -(Neftali) pero no logro entender...(duro el tipo).
Siempre he realizado aplicaciones cliente-servidor. Ahora incursionando en la web he mirado decenas de tutoriales de Embarcadero y he realizado con XE7 una aplicación de prueba para ver la tecnología. Arme un Servidor Datasnap que puede consumirse por una conexión con TsqlConnection o con Rest JSON. Todo esto con Mysql. Todo funciona bien, puedo acceder a los datos por mi aplicación cliente o pedir datos por el navegador con http. Hasta aqui he llegado.
Mi desconocimiento empieza donde tengo que reemplazar http://localhost:8080 o la conexión de Host por una dirección web en un hosting. Como subo mi servidor DataSnap al hosting?? entiendo como poner un pagina main.html pero un exe donde va para que se ejecute ??
Perdón si estoy preguntando una huevada, pero no he encontrado como hacerlo o como se resuelve.
Desde ya muchas gracias.

Neftali [Germán.Estévez] 07-07-2020 09:22:10

Un par de datos que ayudarían...

¿De qué tipo es tu Hosting?
¿De qué tipo es tu Servidor Datasnap?

mamcx 07-07-2020 16:53:06

Cita:

Empezado por omarperez.qui (Mensaje 537883)
Como subo mi servidor DataSnap al hosting?? entiendo como poner un pagina main.html pero un exe donde va para que se ejecute ??

Lo que normalmente se hace es que se pone un servidor web "al frente" de tu servidor rest. Uno como nginx(mejorcito), apache (aqui un doc oficial:https://www.embarcadero.com/images/o...plications.pdf) o caddy.

Al configurarlo, se necesita darle el "puente" que redirecciona las llamadas hacia tu servidor rest. En nginx, es algo asi:

Código:

    server {
        #monerias para solo usar https y nunca http!
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        ssl        on;
        ssl_certificate        /etc/ssl/certs/cert.pem;
        ssl_certificate_key    /etc/ssl/private/key.pem;

        server_name localhost IP .DOMINIO_sin_WWW;
       
        charset    utf-8;

        access_log /var/log/nginx/app_access.log;
        error_log /var/log/nginx/app_error.log;

        # max upload size
        client_max_body_size 10M;  # adjust to taste

        #ejemplo de enlazar con archivos estaticos
        location /css {
          alias /home/appuser/app/static/css;
        }

        location / {
            proxy_pass        http://0.0.0.0:8080; <-- Tu servidor rest!
            proxy_http_version 1.1;
            proxy_set_header  Connection "";
            proxy_connect_timeout      300;
            proxy_send_timeout          300;
            proxy_read_timeout          300;
            send_timeout                300;           
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Host $server_name;
        }
    }

Para "levantar" tu exe necesitas ponerlo como un servicio de nix. Usando por ejemplo supervisor:

Código:

[program:app]
directory=/home/app/tuapp/
command=/home/app/tuapp/tuexe
autostart=true
autorestart=true
stderr_logfile=/var/log/store.out.log
stdout_logfile=/var/log/store.out.log
environment=
        PRODUCTION=true <--puedes configurarle las variables de entorno de acuerdo a tus necesidades

La otra es armando todo con docker, y empaquetas todo dentro de un docker file.

omarperez.qui 08-07-2020 02:18:51

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 537887)
Un par de datos que ayudarían...

¿De qué tipo es tu Hosting?
¿De qué tipo es t8u Servidor Datasnap?

Hola Neftali, gracias por tu tiempo...he estado leyendo tu blog. Yo estoy tratando de hacer pruebas para poder desarrollar aplicaciones web y saber bien para donde apuntar. Las pruebas que hice en forma local van bien, pero de un localhost a subir a un hosting creo que hay un largo trecho por conocer.
Esto responde tu primer pregunta...que tipo de Hosting? el que me sirva..no se, me he registrado y subido la base de datos Mysql a 000Webhost y a AwardSpace, porque los usaban en otros tutos y tienen Mysql. No se mas que eso.
El Servidor Datasnap que arme con la info de Embarcadero es un Datasnap REST aplication. En los metodos tengo una conexion Firedac, FDQuery y DataSetProvider, para poder probar un cliente con DbExpress- Ademas arme un metodo para consumir con JSON y probar a obtener datos por http en un navegador.

Todo esto me funciona...en mi maquina como localhost. :)
No me quiero meter a desarrolar en serio sin saber que me falta y como se hace.
Saludos

omarperez.qui 08-07-2020 02:44:59

Cita:

Empezado por mamcx (Mensaje 537896)
Lo que normalmente se hace es que se pone un servidor web "al frente" de tu servidor rest. Uno como nginx(mejorcito), apache (aqui un doc oficial:https://www.embarcadero.com/images/o...plications.pdf) o caddy.

Al configurarlo, se necesita darle el "puente" que redirecciona las llamadas hacia tu servidor rest. En nginx, es algo asi:

Para "levantar" tu exe necesitas ponerlo como un servicio de nix. Usando por ejemplo supervisor:

La otra es armando todo con docker, y empaquetas todo dentro de un docker file.

Hola Mamcx, gracias por tu tiempo. Voy a leer los pdf que me has pasado. Hay algunos términos nuevos para mi ahí y quiero saber de que se trata.
Veo que me falta mucho todavia para entrar al mundo web.

Es de gran ayuda saber por que camino tomar para llegar. He mirado decenas de video y tutoriales y ninguno aborda el tema desde "ahora que necesitamos para poner esto en la web". Quizas no lo supe buscar o quizas me falta mucho por aprender mas alla de Delphi y sus nuevas tecnologias.

Muchas Gracias. Saludos


La franja horaria es GMT +2. Ahora son las 20:24:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi