簡體   English   中英

使用 php 腳本接收 http 請求(來自 nginx proxy pass)

[英]Receiving http request with php script (from nginx proxy pass)

我正在嘗試在 php 腳本中使用 nginx 的 proxy_pass 指令發送的數據。

通常這是通過適當的 web 服務器完成的,但我認為這對於非常基本的用例來說可能是一種更簡單、更可靠的方法。

這是相關的 nginx 配置:

location ~ \.htm$ {
    post_action /test;
    }

location = /test {
    internal;
    proxy_method POST;
    proxy_pass https://some.website/test.php;
    }

這是 php 腳本:

<?php

$headers = getallheaders();
$useragent = $headers['User-Agent'];
$languages = $headers['Accept-Language'];
$md5 = md5($useragent + $languages);
$endpoint = "https://some.webserver/endpoint";
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $md5);
curl_exec($ch);
curl_close($ch);

因此,預期的功能是,無論何時加載 a.htm 頁面,數據都會被代理傳遞到 some.website,進行處理,然后進一步發送到 some.webserver。

這似乎不起作用......但是:

  1. 如果我使用 Postman 向https://some.website/test.php發送 Post 請求,它會起作用。

  2. 如果我直接將 proxy_pass 傳遞給https://some.webserver/endpoint ,它就可以工作。

那我錯過了什么?

結果是 ssl 問題,添加了proxy_ssl_server_name on; 到 nginx 塊修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM