PDA

Ver la Versión Completa : Subir Servidor Datasnap a un Hosting


omarperez.qui
06-07-2020, 18:47:52
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
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/old/pdf/development-and-deployment-of-delphi-multi-tier-applications.pdf) o caddy.

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


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 (https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps):


[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
;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
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/old/pdf/development-and-deployment-of-delphi-multi-tier-applications.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 (https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps):

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