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
Last revision Both sides next 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/03/30 14:44]
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.
  
-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: 2021/08/09 14:00
  • by Jackson Zhang