Bloc

Frameworks, ser o no ser

Fa molt de temps que em dedico a l’ensenyament de la informàtica. Això, com ja sabeu canvia molt i molt ràpid. És cert que en l’actualitat molts dels productes que hi veiem tenen al darrera un backend, un suport que està basat habitualment en un Framework.

De tots és conegut el framework Symfony, porta més de 10 anys al capdavant dels projectes framework en PHP, en dura competència amb Laravel, però sembla que el món dels frameworks podria tenir els dies comptats.

S’aproxima la tempesta perfecta:

DESPLEGAMENT D’APLICACIONS NODE.JS EN SERVIDORS WEB

Un dels aspectes que fan més difícil l’adaptació d’un desenvolupador PHP cap a desenvolupador NodeJS és el desplegament i publicació de l’aplicació NodeJS, en aquest cas el problema ve donat perquè l’aplicació node representa un servei i un port específic, molt lluny de l’estructura domini/directori = aplicació que tenim en PHP

Prerequisits

  • sudo
  • node.js i npm
  • Nom de domini
  • IP pública

Preparació de l’aplicació

Instal·lació de curl, i node.js i el paquet build-essential

 Existeixen alternatives a l’hora de iniciar automàticament la nostra aplicació

A través de rc.local (recomanable)

Si volem que algun programa s’iniciï després d’arrencar, només cal afegir-lo al fitxer /etc/rc.local:

#! /bin/bash
node /ruta_a_la_nostra_app/server.js &

Debian Stretch:

Es pot crear un servei tal i com indica el següent article:

https://linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux

Ajustaments de DNS i hosts

Habilitació de noms de domini

Habilitar mòduls proxy i proxy_http  de Apache, permeten redirigir tràfic del port d’aplicació al port 80 de httpd

sudo a2enmod proxy
sudo a2enmod proxy_http

Crear site definint característiques del site com a Proxy i ProxyReverse, modificar port del proxypass i proxyreverse segons aplicació.

<VirtualHost *:80>
<Proxy *>
Order deny,allow
     Allow from all
   </Proxy>
 ServerAdmin webmaster@exemple.dev
ServerName exemple.dev
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/
</VirtualHost>

I sobre NGINX?


tenint en compte el potencial que té aquest servidor, que recordem incorpora ja els mòduls de proxy i proxy reverse, és una opció a tenir en compte:
A continuació s’indica la porció de configuració destinada a fer de proxy invers, de manera que escolta pel port 80 peró redirigeix cap al port 3000, fent que aparentment mostri la mateixa URL. 

server{
listen 80;
root —–;
server_name ——;
location / {
                proxy_pass http://IP_de_servei:3000;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $http_host;
        }
}