在多个端口上侦听或在Linux板上启用SSL模块后,HTTP请求失败

时间:2014-07-16 10:59:46

标签: linux apache http ssl https

我有一个我想要的自定义Linux板

  

运行apache web server(httpd)来测试HTML

和其他基于网页的网页。

我在Linux PC(Ubuntu 12.04 LTS)上配置,交叉编译并安装了httpd( 2.2.24,2.4.1,2.4.4和2.4.9软件包)以及 在我自己的自定义Linux板上。然后我添加了对 SSL模块(mod_ssl)的支持来测试HTTP和HTTPS请求。

HTTP HTTPS 请求在我的Linux PC(Ubuntu 12.04 LTS)上都没有任何问题。但是当我尝试执行相同的 HTTP 请求时 在我的Linux板上使用httpd(启用了SSL模块的2.4.4和2.4.9),当时浏览器页面进入加载状态,无法从这种情况出来。 此外,我已经看到 HTTPS 请求当时正常工作(不是 HTTP

我还通过wire-shark工具做了一些调试任务,发现通过 HTTP 发送请求后连接成功建立 但无法获得该请求的响应。我还发现,在关闭 HTTP 后,在线路鲨鱼上收到了 HTTP 请求的响应 来自浏览器的请求页面。

此外,我可以在Linux主板上使用httpd(启用了SSL模块的2.2.24和2.2.27)成功运行 HTTP HTTPS 请求但是失败了执行相同的请求 使用httpd(2.4.X启用SSL模块)包。

我还通过为 HTTP (端口80)和 HTTPS (端口443)创建不同的虚拟主机来更改了一些配置,但仍然无法 执行 HTTP 请求。

我还尝试在不使用SSL模块(使用httpd 2.4.4。和2.4.9)的不同端口(如Listen 80和Listen 8000)上侦听 时间 HTTP 请求进入加载状态。

基本上所有东西都适用于2.2.x版,但不适用于2.4.x版。

有没有人对这个问题有所了解或帮我解决这类问题?

1 个答案:

答案 0 :(得分:1)

我在自定义linux板上的多个Listen Directive上请求HTTP Page时遇到了类似的问题。

请使用 ac_cv_o_nonblock_inherited = no 标志配置APR包,并使用httpd包配置int,这将解决多个侦听端口上的HTTP请求失败问题。