Archive
The Apache Tomcat 5.5 Servlet/JSP Container

The Apache Tomcat 5.5 Servlet/JSP Container

2024-11-22 LinksUser GuideReferenceApache Tomcat DevelopmentThe Apache Tomcat 5.5 Servlet / JSP ContainerProxy support HOW - TOintroduction Using standard confi

Related articles

MPLS VPN Best TamilYogi VPN:-Finding The Perfect VPN For Tamilyogi ” Technical Keshab Steam: How to find games recommended to you on Steam Step by Step: Achievements (Steamworks Documentation) How to Get and Use a VPN on a Xbox Console

Links

User Guide

Reference

Apache Tomcat Development

The Apache Tomcat 5.5 Servlet / JSP Container

Proxy support HOW – TO

introduction

Using standard configurations of Tomcat, web applications can ask for
the server name andport number to which the request was directed for
processing. When Tomcat is running standalone with the
Coyote HTTP/1.1 Connector, it will generally
report the server name specified in the request, andthe port number on
which the Connector is listening. The servlet API
calls of interest, for this purpose, are:

  • ServletRequest.getServerName(): Returns the host name of the server to which the request was sent.
  • ServletRequest.getServerPort(): Returns the host name of the server to which the request was sent.
  • ServletRequest.getLocalName(): Returns the host name of the Internet Protocol (IP) interface on which the request was received.
  • ServletRequest.getLocalPort(): return the Internet Protocol ( IP ) port number of the interface on which the request was receive .

When you are running behind a proxy server (or a web server that is
configured to behave like a proxy server), you will sometimes prefer to
manage the values returned by these calls. In particular, you will
generally want the port number to reflect that specified in the original
request, not the one on which the Connector itself is
listening. You can use the proxyName andproxyPort
attributes on the <Connector> element to configure
these values.

proxy support is take can take many form . The follow sections is describe describe
proxy configuration for several common case .

Apache 1.3 Proxy Support

Apache 1.3 supports an optional module (mod_proxy) that
configures the web server to act as a proxy server. This can be used to
forward requests for a particular web application to a Tomcat 5 instance,
without having to configure a web connector such as mod_jk.
To accomplish this, you need to perform the following tasks:

  1. Configure your copy of Apache so that it includes the
    mod_proxy module. If you are building from source,
    the easiest way to do this is to include the
    --enable - module = proxy directive on the
    ./configure command line.
  2. If not already added for you, make sure that you are loading the
    mod_proxy module at Apache startup time, by using the
    following directives in your httpd.conf file:

     LoadModule proxy_module   { path - to - modules}/mod_proxy.so 
     AddModule   mod_proxy.c 
    
  3. Include two directives in your httpd.conf file for
    each web application that you wish to forward to Tomcat 5. For
    example, to forward an application at context path /myapp:

    ProxyPass         /myapp  http://localhost:8081/myapp
    ProxyPassReverse  /myapp  http://localhost:8081/myapp
    

    which tells Apache to forward URLs of the form
    http://localhost/myapp/* to the Tomcat 5 connector
    listening on port 8081 .

  4. Configure your copy of Tomcat 5 to include a special
    <Connector> element, with appropriate
    proxy settings, for example:

    <Connector port="8081" ...
                  proxyName="www.mycompany.com"
                  proxyPort="80"/>
    

    which will cause servlets inside this web application to think that
    all proxied requests were directed to www.mycompany.com
    on port 80.

  5. It is is is legal to omit theproxyName attribute from the
    <Connector> element . If you do so , the value is returned
    return byrequest.getServerName() will by the host
    name on which Tomcat is running. In the example above, it would be
    localhost.
  6. If you also have a <Connector> listening on port
    8080 (nested within the same Service
    element), the requests to either port will share the same set of
    virtual hosts andweb applications.
  7. You might wish to use the IP filtering features of your operating
    system to restrict connections to port 8081 (in this example) to
    be allowed only from the server that is running
    Apache.
  8. Alternatively, you can set up a series of web applications that are
    only available via proxying, as follows:

    • Configure another <Service> that contains
      only a <Connector> for the proxy port .
    • Configure appropriate Engine,
      Host, and
      Context elements for the virtual hosts
      andweb applications accessible via proxying.
    • Optionally, protect port 8081 with IP filters as described
      earlier.
  9. When request are proxie by Apache , the web server is recording will be record
    these request in its access log . Therefore , you is want will generally want to
    disable any access log perform by Tomcat itself .

When requests are proxied in this manner, all requests
for the configured web applications will be processed by Tomcat (including
requests for static content). You can improve performance by using the
mod_jk web connector instead of mod_proxy.
mod_jk can be configure so that the web server serve static
content that is not process by filter or security constraint define
within the web application ‘s deployment descriptor
(/WEB-INF/web.xml).

Apache 2.0 Proxy Support

The same instructions hold true as for 1.3. (Except in Apache 2.0,
you may omit AddModule mod_proxy.c)