You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.9 KiB
Markdown

Pipeserver is a simple webserver that uses [websockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications) to distribute text received on stdin to connected webpages. By piping other processes into pipeserver, you can stream their messages and eventually produce customized javascript interfaces based on the content.
4 years ago
Installation of prerequisites:
pip3 install aiohttp aiohttp_jinja2
Usage:
python3 pipeserver --template pipeserver.html
But of course the fun is to pipe into it...
liquidsoap -v my.liq | python3 pipeserver --template pipeserver.html
## Server proxies
### nginx
When behind an nginx proxy such as:
# Appel du serveur local sur le port désormais alloué à apache
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
You will need to add to support websockets through the connection:
# websocket stuff
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
### apache
Untested...
```
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
```
```
<VirtualHost *:80>
ServerName www.domain2.com
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:8080/$1 [P,L]
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:443>
ServerName ws.serverlab.ca
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "wss:/localhost:3000/$1" [P,L]
ProxyPass / https://localhost:3000/
ProxyPassReverse / https://localhost:3000/
ProxyRequests off
</VirtualHost>
```
[source](https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel)