标签: tomcat

如何让 apache 在反向代理设置中提供静态内容?

我有一个设置,其中我的 Tomcat 实例前面是带有 mod-proxy 的 Apache 服务器。我需要在反向代理端提供静态内容,以防身份验证关闭我的应用程序会话(重型 ajax 应用程序)。

这个想法是浏览器正在请求一些静态内容,例如:

http://myreverseproxy.com/app/sc/skins/Enterprise/images/SectionHeader/opener_closed.png
Run Code Online (Sandbox Code Playgroud)

Apache 将请求转发给将提供图像的 Tomcat。我需要它由 Apache 提供服务,这可能吗?

谢谢!

tomcat reverse-proxy mod-proxy apache-2.2

3
推荐指数
1
解决办法
1万
查看次数

Apache:基于URL后缀的代理

我的团队编写了一个内部 BI 服务器,它在/users/daily或等链接处生成 HTML 报告/updates/questions

服务器是用Grails编写的,它与经典的 Apache-Tomcat 设置完美配合:

ProxyPass         /     http://localhost:8080/ nocanon
ProxyPassReverse  /     http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

所以

https://example.com/users/daily
Run Code Online (Sandbox Code Playgroud)

在内部代理到

http://localhost:8080/users/daily
Run Code Online (Sandbox Code Playgroud)

并由 Tomcat servlet 提供服务。

服务器成功,我想将它部署三次,到 3 个不同的系统,由 URL 后缀 ( /dev, /stg, /prod)区分:

在此处输入图片说明

这意味着https://example.com/dev/users/daily将从 代理http://localhost:8080/users/daily,并将https://example.com/prod/users/dailyhttp://localhost:8082/users/daily.

我尝试了一些 ApacheRewriteRuleProxyPass规则,但找不到有效的组合。

如何在具有工作内部链接的 Apache 中进行基于后缀的内部路由?

tomcat proxy redirect apache-2.2

3
推荐指数
1
解决办法
5590
查看次数

Tomcat 8.0 重写 Valve

我正在尝试在 Tomcat 8.0 http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html 中使用 RewriteValve

在 $CATALINA_HOME/conf/server.xml 中,我添加了

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
Run Code Online (Sandbox Code Playgroud)

就在 Host 标签下方

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
Run Code Online (Sandbox Code Playgroud)

rewrite.config$CATALINA_HOME/conf目录中创建了一个如下

RewriteRule ^/abc /myapp
Run Code Online (Sandbox Code Playgroud)

http:/host:port/myapp一个工作的 web 应用程序在哪里。

所以现在当我去http://host:port/abc我希望被重定向到http://host:port/myapp但我得到一个 404the requested resource is not available代替。

它看起来甚至没有读取我的 rewrite.config 文件。日志目录中的访问日志只报告了"GET /abc HTTP/1.1" 404 1000没有更多详细信息。

我错过了什么?谢谢

tomcat

3
推荐指数
1
解决办法
4235
查看次数

Apache mod_proxy 和 Tomcat 8.5 使用 http2

是否可以mod_proxy在带有 http2 协议的 Apache Tomcat 8.5 前面使用?如果是,很高兴看到示例配置。

编辑

具体做法是:是否可能,建议使用http2的客户端和服务器之间(Apache httpd),并继续与数据流ajp之间Apache httpdApache Tomcat

编辑 2

此答案提供了有关该主题的一些详细信息:

/sf/ask/2498837701/

tomcat mod-proxy apache-2.4 http2

3
推荐指数
1
解决办法
3123
查看次数

如何让 Tomcat 9 与 authbind 一起使用以绑定到端口 80?

不幸的是,Tomcat 对 authbind 的使用没有记录,这使得在不以 root 身份运行时将 Tomcat 9 绑定到端口 80 是一个挑战。我在 Ubuntu 16.04 上尝试了以下操作:

1) 在 server.xml 中,将 <Connector> 中的属性端口更改为 80。

2)安装authbind。

3) 将 AUTHBIND=yes 添加到 setenv.sh

4) 创建文件 /etc/authbind/byport/80 具有 777 权限和所有者 tomcat。

如果我startup.sh以 root 身份运行,它工作正常。但是,如果我以非特权用户“tomcat”的身份执行此操作,脚本将显示“Tomcat 已启动”且没有错误消息。但是浏览器显示“无法连接”。

如果我运行authbind startup.sh,结果是一样的。启动脚本中缺少错误消息使我对问题的原因一无所知。

可能的相关信息:tomcat 是从 zip 文件安装的,而不是从 repo 安装的。

关于使这项工作起作用的技巧,我还有什么其他的事情吗?这在官方文档中严重缺失。

tomcat

3
推荐指数
1
解决办法
2万
查看次数

是什么杀死了我的 tomcat 服务,如何自动重新启动它?

带有 ubuntu 18.04 的 tomcat 9。tomcat服务状态:

? tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: failed (Result: signal) since Thu 2020-03-26 03:00:31 UTC; 3h 33min ago
  Process: 8815 ExecStop=/opt/tomcat/latest/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 8858 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 8865 (code=killed, signal=KILL)
Run Code Online (Sandbox Code Playgroud)

catalina.out 什么也没说。系统日志说

Mar 26 03:00:31 user systemd[1]: tomcat.service: Main process exited, code=killed, status=9/KILL
Mar 26 03:00:31 user systemd[1]: tomcat.service: Failed with result 'signal'.
Mar 26 03:17:08 user systemd[1]: Reloading The Apache HTTP Server. …
Run Code Online (Sandbox Code Playgroud)

tomcat service ubuntu-18.04

3
推荐指数
1
解决办法
4059
查看次数

selinux 阻止对文件 centos 执行访问

我想使用 cmdlet 在 CentOS 上启动 Tomcat 服务:

systemctl start tomcat.service
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

无法启动 Apache ExecStart=/opt/tomcat/bin/startup.sh(代码=退出,状态=203/EXEC)。

和通过命令的日志:

Journalctl -xe 
Run Code Online (Sandbox Code Playgroud)

正在说明

Selinux 阻止 (artup.sh) 对文件 startup.sh 执行访问

鉴于我可以在 CentOS 上启动任何其他服务,我的 tomcat 服务可能有什么问题?

谢谢

tomcat centos centos7

3
推荐指数
1
解决办法
3335
查看次数

使用 mod_proxy 传递 IP 地址

我有mod_proxy将请求传递给 Tomcat 的Apache 。问题是,当我在 Tomcat 上托管的 Web 应用程序中获取与请求关联的客户端 IP 地址时,它总是返回 127.0.0.1。

是否可以让 Apache 将原始 IP 地址传递给 Tomcat?

tomcat mod-proxy apache-2.2

2
推荐指数
1
解决办法
1万
查看次数

您可以在另一个用户下运行特定的 tomcat Web 应用程序吗?

我们正在开发一个在 tomcat 下运行的 web 应用程序,它依赖于 Java 用户首选项来存储所有类型的设置。这很好用,但我们遇到了问题,我们需要设置另一个临时网络应用程序,它允许您在设置它们之前测试设置。

问题的核心在于,由于所有 Web 应用程序都在 tomcat 用户(可配置)下运行,因此所有 Web 应用程序的 Java 用户首选项都相同。由于遗留原因,我目前无法更改我的首选项结构,所以我希望在 tomcat 配置方面有一个解决方案。

是否可以在 tomcat 中为特定的 Web 应用程序指定不同的用户凭据?

谢谢,波阿斯

configuration tomcat users

2
推荐指数
1
解决办法
1883
查看次数

使用 Puppet 设置 Tomcat(菜鸟问题)

我一直在学习 Puppet(就像过去 24 小时一样)并提出了以下模块来安装 Tomcat。它工作得很好,但我不禁觉得这不是执行此操作的最佳方法 - 特别是在name[1-4]零件和步骤/依赖项周围。如果“傀儡大师”:) 能看看我在做什么并提出改进建议,我将不胜感激。


class tomcat {
  ####                                                                                
  # Tomcat                                                                            

  # Variables                                                                         
  $tomcatVersionedDir="/usr/local/apache-tomcat-6.0.29"
  $tomcatDir="/usr/local/tomcat"
  $tomcatBinDir="${tomcatDir}/bin"
  $tomcatDaemonSrcDir="${tomcatBinDir}/commons-daemon-1.0.2-native-src"

  # 1) Get the package                                                                
  file { "/root/tomcat6.tgz":
    ensure => "file",
    source => "puppet://puppet/tomcat/tomcat6.tgz",
  }

  # 2) Untar the package                                                              
  define tomcat_expand() {
    exec { "/bin/tar xzf /root/tomcat6.tgz":
      cwd => "/usr/local",
      creates => $tomcatVersionedDir,
    }
  }
  tomcat_expand { name1:
    require => File["/root/tomcat6.tgz"],
  }

  # 3) Create the symlink                                                             
  file { "${tomcatDir}":
    ensure => $tomcatVersionedDir,
    require => …
Run Code Online (Sandbox Code Playgroud)

tomcat puppet tomcat6

2
推荐指数
1
解决办法
6872
查看次数