Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
litespeed_wiki:proxy:lsws-as-a-websocket-proxy [2018/01/19 22:03] Michael Alegre [Setup WebSocket Backend] |
litespeed_wiki:proxy:lsws-as-a-websocket-proxy [2020/01/09 00:36] (current) Lisa Clarke [How to Configure LSWS in cPanel as a WebSocket Proxy] Proofreading |
||
---|---|---|---|
Line 17: | Line 17: | ||
{{ :litespeed_wiki:proxy:add-websocket-proxy1.png?600 |}} | {{ :litespeed_wiki:proxy:add-websocket-proxy1.png?600 |}} | ||
- | As you can see, it tested successfully. | + | This screenshot shows a successful test. If it had failed, you would see a ''Simple WebSocket Client undefined'' error, like so: |
- | + | ||
- | If it had failed, you would see a ''Simple WebSocket Client undefined'' error, like so: | + | |
{{ :litespeed_wiki:proxy:add-websocket-proxy2-testfail.png?600 |}} | {{ :litespeed_wiki:proxy:add-websocket-proxy2-testfail.png?600 |}} | ||
- | ===== How to Configure LSWS as a WebSocket Proxy ===== | + | ===== How to Configure LSWS Native Virtual Host as a WebSocket Proxy ===== |
- | In the LSWS Web Console, navigate to **Virtual Host (Native) > General > Web Socket Proxy Setup** | + | In the LSWS WebAdmin Console, navigate to **Virtual Host (Native) > General > Web Socket Proxy Setup** |
{{ :litespeed_wiki:proxy:add-websocket-proxy3.png?800 |}} | {{ :litespeed_wiki:proxy:add-websocket-proxy3.png?800 |}} | ||
{{ :litespeed_wiki:proxy:add-websocket-proxy4.png?800 |}} | {{ :litespeed_wiki:proxy:add-websocket-proxy4.png?800 |}} | ||
- | Set up **URI** and **Address**. | + | Configure **URI** and **Address**. The URI can be a plain URI (starting with "/"). The **URI** can be an exact match. If a plain URI ends with a "/", then this WebSocket backend will include all sub-URIs under this URI, such as **/sub/** should include /sub/001, /sub/002... etc. However, the regular expression, such as ''/sub/*'', will **not** work for WebSocket. |
Save and restart LSWS. | Save and restart LSWS. | ||
+ | |||
+ | ===== How to Configure LSWS in cPanel as a WebSocket Proxy ===== | ||
+ | |||
+ | LSWS supports ''ProxyPass'' for WebSocket, used like so: | ||
+ | |||
+ | <code>ProxyPass / ws://localhost:3000/</code> | ||
+ | |||
+ | **Note**: This directive must be placed in an Apache vhost configuration file, not in .htaccess. | ||
+ | |||
+ | For example, for RocketChat, create two files like these, replacing ''EXAMPLE'' and ''www.example.com'' with the cPanel username and the actual domain: | ||
+ | |||
+ | ''/etc/apache2/conf.d/userdata/ssl/2_4/EXAMPLE/www.example.com/proxy.conf'' | ||
+ | |||
+ | ''/etc/apache2/conf.d/userdata/std/2_4/EXAMPLE/www.example.com/proxy.conf'' | ||
+ | |||
+ | Add the following code to both files: | ||
+ | |||
+ | <code><IfModule mod_rewrite.c> | ||
+ | RewriteEngine on | ||
+ | RewriteRule (.*) http://localhost:3000/$1 [P,L] | ||
+ | ProxyPass / ws://localhost:3000/ | ||
+ | </IfModule></code> | ||
+ | |||
+ | Rebuild the Apache configuration file, and restart LSWS: | ||
+ | |||
+ | <code>/scripts/buildhttpdconf | ||
+ | |||
+ | /usr/local/lsws/bin/lswsctrl restart</code> | ||
===== Final Test: The Front End ===== | ===== Final Test: The Front End ===== | ||
Line 39: | Line 66: | ||
wss://example.com/sub/xx1 | wss://example.com/sub/xx1 | ||
- | As you can see, all is working fine: | + | If all is working fine you should see the following: |
{{ :litespeed_wiki:proxy:add-websocket-proxy5.png?600 |}} | {{ :litespeed_wiki:proxy:add-websocket-proxy5.png?600 |}} | ||