Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
litespeed_wiki:nodejs_setup [2014/07/30 17:50]
Michael Armstrong [If Using LSWS Below 4.2.13 or Proxying to an External Server]
litespeed_wiki:nodejs_setup [2015/07/28 21:28]
Michael Alegre removed
Line 3: Line 3:
 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. 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).+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 ===== ===== Install Node.js =====
  
-  - wget http://​nodejs.org/​dist/​node-latest.tar.gz +Get the latest Node.js package. 
-  ​tar xvzf node-latest.tar.gz + 
-  ​cd node-vX.X.X +  ​wget http://​nodejs.org/​dist/​node-latest.tar.gz 
-./​configure ​--prefix=~ + 
-make +Expand the tarball. 
-make install+ 
 +  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 Application ===== 
 + 
 +For the rest of this wiki, we will be using the example Node.js web server ''​example.js''​ found on [[http://​nodejs.org/​|Node.js'​s homepage]]. This web server runs on port 1337 and responds with "Hello World" to every request.
  
 ===== Proxy Node.js Traffic ===== ===== 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:+Now that Node.js is installed on your server, you will need to tell LSWS to send the proper traffic to your Node.js ​application. 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, the domain name for the site is "​example.com",​ Node.js application server is running on port 1337, add the following rewrite rule to .htaccess under document root directory. ​
  
   RewriteEngine On   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f   RewriteCond %{REQUEST_FILENAME} !-f
-  ​RewriteCond %{REQUEST_FILENAME} !-d +  RewriteRule ^(.*)$ http://example.com:1337/$1 [P,L]
-  ​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.+The above example redirects all traffic (after checking that it is a directory or file) to port 1337 (where ''​example.js'' ​is running, as noted above). Static files are still served by LSWS.  
 + 
 +If there is no need to serve static files through LSWS, you can let LSWS proxy all requests to backend application server with rewrite rule 
 + 
 +  RewriteEngine On 
 +  RewriteRule ^(.*)$ http://​example.com:1337/$1 [P,L]
  
 ==== If Using LSWS Below 4.2.13 or Proxying to an External Server ==== ==== 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 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. 
 + 
 +{{litespeed_wiki:​create_proxy_extapp.png?​700}} 
 + 
 +=== Configure the Web Server External Application === 
 + 
 +{{litespeed_wiki:​config_proxy_extapp.png?​700}} 
 + 
 +In the above configurations we have made the Location 1.2.3.4:​1337. It is important that the Location match the IP (127.0.0.1 if it is on the same server) and port your Node.js application is running on. 
 + 
 +After saving the configurations,​ restart LSWS to save changes. Your traffic should be redirected to your Node.js application now. 
 + 
 +===== Notes =====
  
-=== Add a Web Server External Application ===+  * If you encounter errors using Node.js, please make sure that Node.js is started and running when using it.