Apache - Reverse Proxy and HTTP 302 status message

前端 未结 4 725
失恋的感觉
失恋的感觉 2021-02-05 22:36

My team is trying to setup an Apache reverse proxy from a customer\'s site into one of our web applications.

http://www.example.com/app1/some-path maps to http://intern

相关标签:
4条回答
  • 2021-02-05 22:53

    Basically, ProxyPassReverse should take care of rewriting the Location header for you, as Kevin Hakanson pointed out.

    One pitfall I have encountered is missing the trailing slash in the url argument. Make sure to use:

    ProxyPassReverse / http://internal1.example.com/some-path/
    

    (note the trailing slash!)

    0 讨论(0)
  • 2021-02-05 23:00

    The AskApache article is quite helpful, but in practice I found a combination of Rewrite rules and ProxyPassReverse to be more flexible. So in your case I'd do something like this:

        <VirtualHost example>
           ServerName www.example.com
    
           ProxyPassReverse /app1/some-path/ http://internal1.example.com/some-path/
           RewriteEngine On
           RewriteRule /app1/(.*)   http://internal1.example.com/some-path$1 [P]
    
           ...
        </VirtualHost>
    

    I like this better because it gives you finer-grained control over the paths you're proxying for the internal server. In our case we wanted to expose only part of third-party application. Note that this doesn't address hard-coded links in HTML, which the AskApache article covers.

    Also, note that you can have multiple ProxyPassReverse lines:

        ProxyPassReverse / http://internal1.example.com/some-path
        ProxyPassReverse / http://internal2.example.com/some-path
    

    I mention this only because another third-party app we were proxying was sending out redirects that didn't include their internal host name, just a different port.

    As a final note, keep in mind that Firebug is extremely useful when debugging the redirects.

    0 讨论(0)
  • 2021-02-05 23:11

    There is an article titled Running a Reverse Proxy in Apache that seems to address your problem. It even uses the same example.com and /app1 that you have in your example. Go to the "Configuring the Proxy" section for examples on how to use ProxyPassReverse.

    0 讨论(0)
  • 2021-02-05 23:15

    Try using the AJP connector instead of reverse proxy. Certainly not a trivial change, but I've found that a lot of the URL nightmares go away when using AJP instead of reverse proxy.

    0 讨论(0)
提交回复
热议问题