cPanel+Litespeed+Proxied mod_perl

Discussion in 'Apache Migration/Compatibility' started by sip, Sep 10, 2008.

  1. sip

    sip Member


    I switched to LSWS and found it excellent. Soon another server is going to be switched. Both are primarily php sites.

    I have one cPanel server where few of our own sites are running under proxied mod_perl on port82 using mod_proxy of apache. While trying to migrate our own server to LSWS we had issues with those sites.

    Is there a How to for this to get working (i can contact DC and tell them to take a look) so that sooner or later i can migrate this server to LSWS with proxied mod_perl Apache.

    cPanel default Apache + proxied mod_perl Apache works fine.
  2. ffeingol

    ffeingol Well-Known Member

    Do the proxied mod_perl pages have a common extension?
  3. sip

    sip Member

    Alias /perl passes to (using mod_proxy) mod_perl apache running 1.3x httpd and 1.29/1.3 mod_perl
    Extension is cgi and url's have query string also

    so script.cgi?t=something;sid=;page=xyz.html
    or could just be script.cgi (normally on POST)
  4. mistwang

    mistwang LiteSpeed Staff

    LiteSpeed can pass certain request to backend Apache running on a different port.

    For example, you have Apache run on port 78, in LiteSpeed, "Apache Port Offset" is set to "2", so LiteSpeed will run on port 80, if set "Apache Handled Content" to ".cgi", LiteSpeed will forward all requests with suffix "cgi" to backend Apache.

    It probably is different from your current setup, which the second Apache mod_perl instance probably is not managed by cPanel, but a custom Apache setup. LiteSpeed setup have everything controlled by cPanel sharing the same httpd.conf.

    Make sure to set SSL port to 441 to make LiteSpeed use port 443.
  5. sip

    sip Member

    Yes it's a custom compile and not cPanel's Apache as it's an overkill to run mod_perl from same instance of apache. So this is not possible i guess as of now?
  6. mistwang

    mistwang LiteSpeed Staff

    You can use rewrite rule to tell LSWS to proxy request to the target Apache instance.
    What you need to do is to define a "Web Server" external application from LSWS web console, with name of "". Then define a rewrite rule like

    RewriteRule (.*)\.cgi$$1 [P]
  7. sip

    sip Member


    Where exactly the rewrite rule has to be defined in LSWS?
    I would want that all requests with


    are handled by mod_perl apache running on port 82.
    The application runs fine from LSWS but i want it to be running through mod_perl apache transparently.
  8. mistwang

    mistwang LiteSpeed Staff

  9. sip

    sip Member


    I would want to:

    Run LSWS for all content except the one that i want to pass to (mod_perl Apache)

    The content that i want to pass to has url like:


    Alias /perl/ /home/cpanelusername/public_html/cgi-bin/

    So basically anything with

    in the URL has to go to mod_perl apache on port 82.

    How do i go about this. I did setup the web server with and did include the rewrite rule as suggested in earlier post but don't see access being passed to backend. In the admin area of the mod_perl script i still see:

    Running under mod_perl: No
    SERVER_PORT => 80
    SERVER_SOFTWARE => LiteSpeed

    So nothing served from mod_perl apache.
    Wish LSWS had obeyed ProxyPass and ProxyPassReverse.

    I would want to use the transparently.
    PS: I have confirmed the Enterprise Version of LSWS with DC so this server would be switching to that.

    Last edited: Feb 9, 2009
  10. mistwang

    mistwang LiteSpeed Staff

    add rewrite rule

    RewriteRule /(perl.*)$$1 [P]

    at vhost configuration level.

    If you use LiteSpeed with cPanel by reading httpd.conf, I would suggest use "Apache Handled Content" I suggested earlier, especially for shared hosting. For single large web site, you can use the rewrite rule.
  11. annoumure

    annoumure Guest

    cPanelLitespeedProxied mod_perl

    If you wrote the above code then the perl side of your question should be easy. Continuing in the same vane just add another hash that points to the URI of an image file. The javascript code I cant help with.

Share This Page