美文网首页
Apache2转发80端口请求到Tomcat

Apache2转发80端口请求到Tomcat

作者: 斯大 | 来源:发表于2018-08-03 15:09 被阅读0次

    Version: Apache2
    Version: Tomcat8

    简介

    使用 Tomcat 的标准配置,Web 应用可以请求服务器名称和端口号》。当 Tomcat 单独和 HTTP/1.1 连接器运行时,通常会报告指定在请求中的服务器名称,以及连接器正在侦听的端口号。servlet API:
    ServletRequest.getServerName() 返回接收请求的服务器主机名。
    ServletRequest.getServerPort() 返回接收请求的服务器端口号。
    ServletRequest.getLocalName() 返回接收请求的 IP 接口的主机名。
    ServletRequest.getLocalPort() 返回接收请求的 IP 接口的端口号。

    当你在代理服务器后(或者配置成具有代理服务器特征行为的 Web 服务器)运行时,可能有时会更愿意管理通过这些调用产生的值。特别是,你一般会希望端口号反应指定在原始请求中的值,而非连接器所正在侦听的那个值。可以使用 <Connector> 元素中的 proxyNameproxyPort 属性来配置这些值。

    1. 打开配置文件sudo vi /etc/apache2/httpd.conf,做修改

      1. 配置 Apache,使其包含 mod_proxy 模块。如果是从源码开始构建,最简单的方式是在 ./configure 命令行中包括 --enable-module=proxy 指令。

      2. 如果没有添加 mod_proxy 模块,则检查一下是否在 Apache 启动时加载了该模块,在 httpd.conf 文件中使用下指令:

        LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
        LoadModule proxy_module.libexec/apache2/mod_proxy.so
        #AddModule mod_proxy.c //apache2 不需要这一行
        
      3. 增加以下两行:

        ProxyPass /myapp http://localhost:8080/myapp
        ProxyPassReverse /myapp http://localhost:8080/myapp
        
      4. 保存文件/etc/apache2/httpd.conf

    2. 打开配置文件/Users/<your short user name>/Library/apache-tomcat-8.0.36/conf/server.xml,作修改

      1. 修改<Connector>内容

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

        这将导致该 Web 应用内的 servlet 认为,所有代理请求都指向的是 80 端口处的 www.mycompany.com

      2. 可以忽略 <Connector> 元素的 proxyname 属性,这是完全合法的。如果忽略,那么 request.getServerName() 返回值将是运行 Tomcat 的主机名——对于该例而言,它就是 localhost。

    相关文章

      网友评论

          本文标题:Apache2转发80端口请求到Tomcat

          本文链接:https://www.haomeiwen.com/subject/fmoyvftx.html