Set up Websocket Proxy
In this article we will explain how to set up a WebSocket proxy to a WebSocket backend. With a WebSocket proxy, OpenLiteSpeed will forward traffic with the WebSocket upgrade request to the WebSocket backend specified in the WebSocket proxy. Traffic without this upgrade request can be served via a separate Context. This means you can keep your WebSocket application behind OpenLiteSpeed, both for security and efficient handling of connections. It also means you can take advantage of OpenLiteSpeed’s efficient service of static or dynamic content while still having WebSocket content on the same page. For more information about WebSocket and WebSocket proxies, please see our blog.
We will not cover here how to set up a WebSocket backend. (The first step is to have a WebSocket backend set up.) WebSocket proxies are only available for OpenLiteSpeed version 1.2 and up.
Have a Websocket Backend Ready
The first step is to have a working WebSocket backend set up. Explaining how to achieve this is out of this KB’s scope but there are plenty of online tutorials that can be consulted. One such tutorial involves using an Nginx backend with an nchan module.
Test the Backend WebSocket
Assuming you have a backend WebSocket up and running on port 7681 at
ws://domain.com:7681, you will need to test it to ensure it is working.
Add a Websocket Proxy to Your Virtual Host
The WebSocket Proxy tab is inside your virtual host settings (WebAdmin console > Virtual Hosts > your virtual host > WebSocket Proxy > Add).
Enter the URI for your WebSocket application (relative to your virtual host’s domain) and the Address of the WebSocket backend.
If your backend server listens on
127.0.0.1:7681, so that’s your address value. You can configure your pages and backend to have the WebSocket application in a different URI and your backend at a different location.
Save the WebSocket proxy and graceful restart to apply changes.
Test It Out
Point your browser to http://yourIP:8088 (or wherever you put the WebSocket page, the default OLS example Virtual host will be on port 8088 while your real application may be on port 80 ) and your WebSocket page should come up, functioning better than ever.