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:proxy:lsws-as-a-proxy-rewrite [2018/07/05 18:23]
Jackson Zhang [Example 2: Proxy to a site on the backend with a different domain name.]
litespeed_wiki:proxy:lsws-as-a-proxy-rewrite [2021/08/09 14:00] (current)
Jackson Zhang [How to set up the server as a proxy via rewrite rules through .htaccess]
Line 1: Line 1:
 ====== How to set up the server as a proxy via rewrite rules through .htaccess ====== ====== How to set up the server as a proxy via rewrite rules through .htaccess ======
 +LiteSpeed 6.0 and above do support ''​ProxyPass''​ directive as well as rewrite rule-based proxy with ''​[P]''​ without setting up an external app.  ''​ProxyAddHeaders on|off''​ is also supported starting from 6.0.7.
  
-LiteSpeed ​works with Apache ​mod_proxy directives, but there is an extra step to add an external app of the proxy in LSWS configuration to make it work fully.  ​+LiteSpeed ​5.4.x and earlier version do not support ''​ProxyPass'',​ ''​ProxyPassReverse''​ and other mod_proxy directives(starting from LSWS 5.3.6 ''​ProxyPass''​ and-''​ProxyPassMatch''​ support for AJP backend have been added but not supported for non-AJP backend). However, you can use rewrite rules with ''​[P]''​ and set up an external app of the proxy in LSWS configuration to make it work fully.  ​
  
 ===== Add the remote proxy as an external app ===== ===== Add the remote proxy as an external app =====
Line 24: Line 25:
 5. After saving, restart LSWS 5. After saving, restart LSWS
  
-===== Use rewrite rules or mod_proxy directive ​in .htaccess=====+===== Use rewrite rules in .htaccess =====
 ==== Example 1: Proxy to a site on the backend with the same domain name.==== ​ ==== Example 1: Proxy to a site on the backend with the same domain name.==== ​
     * In Shell or an Editor, edit the .htaccess file normally located in virtualhost document root and add the following:     * In Shell or an Editor, edit the .htaccess file normally located in virtualhost document root and add the following:
Line 42: Line 43:
  
 ==== Example 3: Proxy to a site on the same server ==== ==== Example 3: Proxy to a site on the same server ====
 +If acting as a proxy to a site on the same server, you can use ''​127.0.0.1:<​port>''​ without manually creating an external app. The rewrite rule proxy target will be created automatically if the target is using ''​127.0.0.1:<​port>''​. When using a domain, even if the domain is hosted on the same server, the external application won't be created automatically. This will lead to a 500 status code as the server cannot find the external application. You will need to create an external app manually, in this case.  ​
  
-If proxy to a site on the same server, you can use "​127.0.0.1:<​port>"​ without manually creating an external app since rewrite rule proxy target will be created automatically if the target is using "​127.0.0.1:<​port>"​. When using a domain, even if the domain is hosted on the same server, the external application won't be created automatically,​ which will lead to 500 status code as the server cannot found the external application. You will need to create an external app manually. ​  +For example, ​''​www.example1.com''​ is hosted on the same serverIf you want to run the following proxy with domain, you will need to create ​an external app:
- +
-For example, www.example1.com hosted on the same server +
- +
-If you want to run the following proxy with domain, you will need to create external app.+
 <​code>​ <​code>​
  ​RewriteEngine On  ​RewriteEngine On
Line 53: Line 51:
 </​code>​ </​code>​
  
-Alternatively, ​simple ​using the following ​and external app will be created by server automatically.+Alternatively, ​simply ​using the following ​code, an external app will be created by the server automatically:
 <​code>​ <​code>​
  ​RewriteEngine On  ​RewriteEngine On
Line 59: Line 57:
 </​code>​ </​code>​
  
 +==== Example 4: cPanel webmail-like proxy ====
 +cPanel'​s ''​www.domain.com/​webmail''​ proxy loads one installation at ''<​nowiki>​http://​127.0.0.1/​rainloop/</​nowiki>''​.
 +
 +An Apache user without a control panel who wants to copy this behavior may achieve it with ''​ProxyPass'',​ like so:
 +  ProxyPass "/​webmail/"​ "​http://​127.0.0.1/​rainloop/"​
 +
 +But LiteSpeed doesn'​t support ''​ProxyPass''​ in this case. Instead, a LiteSpeed user may simply use the following rewrite rule in the virtual host's Apache configuration. No need to create an external app:
 +  RewriteRule /​webmail/​(.*) http://​127.0.0.1/​rainloop/​$1 [P]
  
 ===== Testing ===== ===== Testing =====
  • Admin
  • Last modified: 2018/07/05 18:23
  • by Jackson Zhang