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
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.
|
|
|
|
|
|
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) |