Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
litespeed_wiki:proxy:lsws-as-a-proxy-rewrite [2019/06/05 18:39] Jackson Zhang [Example 3: Proxy to a site on the same server] |
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 doesn't 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. | + | 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 (currently not supported) 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 56: | Line 57: | ||
</code> | </code> | ||
- | ==== Example 4: cpanel webmail like proxy ==== | + | ==== Example 4: cPanel webmail-like proxy ==== |
- | A user using Apache without control panel but he wants to achieve the same that is in cPanel for www.domain.com/webmail: when anyone accesses webmail at www.domain.com/webmail it will load one installation that loads at http://127.0.0.1/rainloop/. | + | cPanel's ''www.domain.com/webmail'' proxy loads one installation at ''<nowiki>http://127.0.0.1/rainloop/</nowiki>''. |
- | With Apache we achieved it with the ''ProxyPass'': | + | 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/" | ProxyPass "/webmail/" "http://127.0.0.1/rainloop/" | ||
- | but LiteSpeed doesn't support ''ProxyPass'' in this case. What exactly does the user need to do to achieve it with LiteSpeed? Actually using the following rewrite rule in the virtual host apache configuration should just work without creating external app on LSWS configuration: | + | 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] | RewriteRule /webmail/(.*) http://127.0.0.1/rainloop/$1 [P] | ||
- | |||
- | |||
===== Testing ===== | ===== Testing ===== |