Diferència entre revisions de la pàgina «Instal·lació d'un servidor de sòcols web a un Debian amb Apache»
(Es crea la pàgina amb «= Prerequisits = Heu de tenir com a mínim la versió 2.4 d'Apache (amb la 2.2 no us anirà). sudo apachectl -V | grep version = Instal·lació dels mòduls d'ext...».) |
m |
||
(Hi ha 7 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
= Prerequisits = | = Prerequisits = | ||
− | Heu de tenir com a mínim la versió 2.4 d'Apache (amb la 2.2 no us anirà). | + | Heu de tenir, com a mínim, la versió 2.4 d'Apache (amb la 2.2 no us anirà). Per a saber quina és la vostra versió: |
sudo apachectl -V | grep version | sudo apachectl -V | grep version | ||
Línia 10: | Línia 10: | ||
sudo a2enmod proxy_wstunnel | sudo a2enmod proxy_wstunnel | ||
+ | = Instal·lació d'un servidor de sòcols web = | ||
+ | El funcionament d'aquest apartat ha estat verificat amb ''Node.js'' versió 10.4.2 i ''npm'' 6.4.1. Per saber-ne les versions que hi teniu instal·lades: | ||
+ | node --version | ||
+ | npm --version | ||
− | sudo nano /etc/apache2/sites-available/ | + | Si no teniu instal·lats el ''Node.js'' i l'''npm'', us recomanem fer la [https://nodered.org/docs/getting-started/local instal·lació del NodeRED], per a no entrar en conflictes de versions quan ens faci falta. |
+ | |||
+ | Baixeu-vos aquest exemple de servidor de sòcols web fet en ''Node.js''. Aquest exemple fa servir el port 8800 (canviable fàcilment modificant-ho al codi): | ||
+ | wget https://www.binefa.cat/training/codes/node/wsServer.js.txt | ||
+ | mv wsServer.js.txt wsServer.js | ||
+ | |||
+ | Per a tenir el servei a un segon pla, i que segueixi funcionant quan ens desconnectem del terminal remot, podeu fer servir ''screen'': | ||
+ | screen | ||
+ | |||
+ | En cas de no tenir ''screen'' instal·lat: | ||
+ | sudo apt install screen | ||
+ | |||
+ | Per a executar el servidor de sòcols web: | ||
+ | node wsServer.js | ||
+ | |||
+ | En el cas de que us digui que no teniu ''express'' instal·lat: | ||
+ | npm install express | ||
+ | npm install express-ws | ||
+ | |||
+ | Deixem el servidor funcionant a ''screen''. Per a sortir del terminal ''screen'', i tornar al vostre terminal normal, premeu les tecles Ctrl A D | ||
+ | |||
+ | = Configuració de l'Apache = | ||
+ | Aquesta configuració està pensada per a servidors sense certificats de seguretat. | ||
+ | sudo nano /etc/apache2/sites-available/000-default.conf | ||
+ | |||
+ | A la línia prèvia a l'etiqueta '''</VirtualHost>''', escriviu-hi (personalitzeu el vostre nom de servidor i el número de port): | ||
+ | ServerName '''elVostre.Servidor.cat''' | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^/website1(.*)$ http://localhost:'''8800'''$1 [P,L] | ||
+ | RewriteCond %{REQUEST_URI} ^/ws_website1 [NC] | ||
+ | RewriteCond %{QUERY_STRING} transport=websocket [NC] | ||
+ | RewriteRule ^(.*)$ ws://localhost:'''8800'''$1 [P,L] | ||
+ | RewriteCond %{REQUEST_URI} ^/ws_website1 [NC] | ||
+ | RewriteRule ^(.*)$ http://localhost:'''8800'''$1 [P,L] | ||
+ | |||
+ | Aquest contingut ha d'estar entre les etiquetes '''<VirtualHost *:80>''' i '''</VirtualHost>''' | ||
+ | |||
+ | Escriviu de nou la configuració de l'Apache i reinicieu el servei: | ||
sudo a2enmod rewrite && sudo systemctl restart apache2 | sudo a2enmod rewrite && sudo systemctl restart apache2 | ||
+ | Verifiqueu si Apache segueix funcionant: | ||
systemctl status apache2.service | systemctl status apache2.service | ||
+ | |||
+ | = Bibliografia = | ||
+ | [https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel WebSockets and Apache proxy : how to configure mod_proxy_wstunnel?] |
Revisió de 14:29, 7 feb 2020
Contingut
Prerequisits
Heu de tenir, com a mínim, la versió 2.4 d'Apache (amb la 2.2 no us anirà). Per a saber quina és la vostra versió:
sudo apachectl -V | grep version
Instal·lació dels mòduls d'extensió a Apache
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_wstunnel
Instal·lació d'un servidor de sòcols web
El funcionament d'aquest apartat ha estat verificat amb Node.js versió 10.4.2 i npm 6.4.1. Per saber-ne les versions que hi teniu instal·lades:
node --version npm --version
Si no teniu instal·lats el Node.js i l'npm, us recomanem fer la instal·lació del NodeRED, per a no entrar en conflictes de versions quan ens faci falta.
Baixeu-vos aquest exemple de servidor de sòcols web fet en Node.js. Aquest exemple fa servir el port 8800 (canviable fàcilment modificant-ho al codi):
wget https://www.binefa.cat/training/codes/node/wsServer.js.txt mv wsServer.js.txt wsServer.js
Per a tenir el servei a un segon pla, i que segueixi funcionant quan ens desconnectem del terminal remot, podeu fer servir screen:
screen
En cas de no tenir screen instal·lat:
sudo apt install screen
Per a executar el servidor de sòcols web:
node wsServer.js
En el cas de que us digui que no teniu express instal·lat:
npm install express npm install express-ws
Deixem el servidor funcionant a screen. Per a sortir del terminal screen, i tornar al vostre terminal normal, premeu les tecles Ctrl A D
Configuració de l'Apache
Aquesta configuració està pensada per a servidors sense certificats de seguretat.
sudo nano /etc/apache2/sites-available/000-default.conf
A la línia prèvia a l'etiqueta </VirtualHost>, escriviu-hi (personalitzeu el vostre nom de servidor i el número de port):
ServerName elVostre.Servidor.cat RewriteEngine On RewriteRule ^/website1(.*)$ http://localhost:8800$1 [P,L] RewriteCond %{REQUEST_URI} ^/ws_website1 [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule ^(.*)$ ws://localhost:8800$1 [P,L] RewriteCond %{REQUEST_URI} ^/ws_website1 [NC] RewriteRule ^(.*)$ http://localhost:8800$1 [P,L]
Aquest contingut ha d'estar entre les etiquetes <VirtualHost *:80> i </VirtualHost>
Escriviu de nou la configuració de l'Apache i reinicieu el servei:
sudo a2enmod rewrite && sudo systemctl restart apache2
Verifiqueu si Apache segueix funcionant:
systemctl status apache2.service
Bibliografia
WebSockets and Apache proxy : how to configure mod_proxy_wstunnel?