美文网首页
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