Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用apache mod_代理时出现应用程序错误passthru_Apache_Mod Proxy - Fatal编程技术网

使用apache mod_代理时出现应用程序错误passthru

使用apache mod_代理时出现应用程序错误passthru,apache,mod-proxy,Apache,Mod Proxy,海亚斯。我将mod_proxy与apache2结合使用,为本地机器上运行的多个servlet应用程序提供vhost功能。在大多数情况下,它运行良好。进入apache的请求然后被定向到本地主机上某个端口上绑定的应用程序。应用程序接收请求并做出响应,然后由apache返回给客户端 我遇到的问题是,应用程序在出现错误时提供500个,而mod_proxy在错误上跺脚。这些错误通常是在ajax请求中引起的,错误是在客户端javascript中处理的。例如,对服务器端createObject(name)的调

海亚斯。我将mod_proxy与apache2结合使用,为本地机器上运行的多个servlet应用程序提供vhost功能。在大多数情况下,它运行良好。进入apache的请求然后被定向到本地主机上某个端口上绑定的应用程序。应用程序接收请求并做出响应,然后由apache返回给客户端

我遇到的问题是,应用程序在出现错误时提供500个,而mod_proxy在错误上跺脚。这些错误通常是在ajax请求中引起的,错误是在客户端javascript中处理的。例如,对服务器端createObject(name)的调用可能会抛出一个NameNotUniqueException,该异常作为500返回。然后,客户端javascript可能会显示相应的错误消息

当应用程序抛出错误(导致对mod_proxy的500响应)时,apache会踩下错误消息并返回

500内部服务器错误

内部服务器错误 服务器遇到内部错误或错误 配置错误,无法完成 你的要求

。。股票apache服务器端错误消息

我希望mod_proxy将原始的500传递回客户端。是否有一个指令我错过了,以防止冲击500

TIA

你有没有

 ProxyRequests Off
 ProxyErrorOverride Off
 ProxyPass /path/ http://backend.ip/path/
 ProxyPassReverse / http://backend.domain/
用您的值替换backend.ip和backend.domain(我在这里使用backend.ip,因为它阻止apache对每个请求运行dns查询)


通常错误按原样报告。因为ProxyErrorOverride默认为关闭。如果我的配置没有出现这种情况,请检查500是否确实来自您的后端服务器。或者只向我们展示您的完整代理配置。

我也有同样的问题,从apache2/mod_wsgi更改为apache2,使用反向代理更改为mod_wsgi-express后,我得到了一个空白的500页

我的配置(将实际域替换为www.example.com):


服务器名www.example.com
代理请求关闭
ProxyErrorOverride关闭
ProxyPass/http://localhost:8001/
ProxyPassReverse/https://www.example.com/
代理主机
RequestHeader集合X-Forwarded-Proto“https”
ErrorLog/var/log/apache2/www.example.com.error.log
日志级别警告
CustomLog/var/log/apache2/www.example.com.log
斯伦金安
SSLCertificateFile/etc/letsencrypt/live/www.example.com/cert.pem
SSLCertificateKeyFile/etc/letsencrypt/live/www.example.com/privkey.pem
SSLCertificateChainFile/etc/letsencrypt/live/www.example.com/fullchain.pem

使用mod_proxy_ajp或mod_jk怎么样?在我看来,它们更适合于将Apache连接到servlet。这是一个很好的建议。该应用程序是一个独立的jetty驱动的dyn web引擎。也许我应该看看jetty ajp连接。嗯,mod_代理似乎是首选方法()。因此,我很惊讶我没有找到解决这个问题的方法。我的问题似乎不是apache,而是mod_wsgi-express。
<VirtualHost *:443>
  ServerName www.example.com

  ProxyRequests Off
  ProxyErrorOverride Off
  ProxyPass         /  http://localhost:8001/
  ProxyPassReverse  /  https://www.example.com/
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto "https"

  ErrorLog /var/log/apache2/www.example.com.error.log
  LogLevel warn
  CustomLog /var/log/apache2/www.example.com.log combined

  SSLEngine On
  SSLCertificateFile    /etc/letsencrypt/live/www.example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
  SSLCertificateChainFile       /etc/letsencrypt/live/www.example.com/fullchain.pem
</VirtualHost>