不允许 Openshift Apache/Nginx 405

时间:2021-07-08 08:11:48

标签: apache nginx openshift

我们正在使用 OpenShift 3.4。为 pod 使用 s2i PHP 图像。当从 pod 到外部资源执行 curl 时,它返回 405 Not Allowed nginx/1.16.1。代码在本地设置上运行良好。我从网上了解到,这是因为我们自己的服务器不允许 POST 请求,我们需要对其进行配置以允许相同的请求。

$ch = curl_init($ldapAuthURL);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($ch);

我无法解决此问题,因为我对 OpenShift 没有任何经验,我尝试寻找 httpd 文件,但无处可寻。支持团队也无法提供帮助,他们说他们只支持图像推送和拉取,而且是我们的应用程序代码有问题。

1 个答案:

答案 0 :(得分:1)

令我沮丧的是,支持团队是对的,这是一个应用程序问题。我的团队成员已配置了在 nginx 上运行 Angular 应用程序的前端的 URL。因此会出现神秘错误 405 nginx,因为前端不支持该 URL 上的 post 请求。

这就是 PHP pod 中没有 Nginx 配置文件的原因,因为它使用 Apache 来提供文件。

解决步骤:

  1. 我使用公共 URL 在 PHP 中创建了一个独立的 curl 服务。
  2. 它奏效了。然后我确定我的应用程序代码有问题
  3. 我尝试使用 PHP 命中的 URL 进行独立 curl,它返回了相同的 405 错误。
  4. 它给出了一个明确的结果,URL 存在一些问题