This is an old revision of the document!
Setting Up Node.js
Node.js is a platform that generally runs as a separate web server. LiteSpeed Web Server can be configured to proxy traffic to Node.js so that users can run Node.js applications (like Ghost) on their sites.
The following wiki guides you through the steps to set up Node.js with LiteSpeed Web Server. The wiki assumes that you have a functional LSWS installation running off of Apache configurations (though the steps can be easily adapted to using LSWS native configuration files).
Install Node.js
Get the latest Node.js package.
wget http://nodejs.org/dist/node-latest.tar.gz
Expand the tarball.
tar xvzf node-latest.tar.gz
Build Node.js from the source.
cd node-vX.X.X ./configure make make install
Add Your Node.js Files
For the rest of this wiki, we will be using the example Node.js web server example.js
found on Node.js's homepage. This web server runs on port 1337 and responds with “Hello World” to every request.
Proxy Node.js Traffic
Now that Node.js is installed on your server, you will need to tell LSWS to send the proper traffic to Node.js. Starting with LSWS 4.2.13, this can be done with a just a rewrite rule (if Node.js is installed on the same server as LSWS). Simply add a rewrite rule that will redirect traffic to the port Node.js is listening on. The following is an example:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://ghost.domain.com:XXXXX/ghost/$1 [P,L]
The above example redirects all traffic (after checking that it is a directory or file) to a Ghost subdomain using port XXXXX. Port XXXXX should be the port Node.js is running on.
If Using LSWS Below 4.2.13 or Proxying to an External Server
In order for LSWS to proxy traffic to another web server, LSWS needs a proxy-type external application. Starting with LSWS 4.2.13, LSWS will automatically create a proxy external application for rewrite rules that redirect to a local web server. If you are using a version below 4.2.13 or are running Node.js on a different server, you will need to use the following steps to manually create a proxy external application to proxy to Node.js in addition to adding the rewrite rules above.
Create a Web Server External Application
Add a new external application (WebAdmin console > Configuration > Server > External App > Add). Choose “Web Server” as the Type.
Configure the Web Server External Application
In the above configurations we have made the Location 1.2.3.4:50000. It is important that the Location match the IP (127.0.0.1 if it is on the same server) and port Node.js is running on.
After saving the configurations, restart LSWS to save changes. Your traffic should be redirected to Node.js now.
Notes
- If you encounter errors using Node.js, please make sure that Node.js is started and running when using it.