[英]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。
這似乎不起作用......但是:
如果我使用 Postman 向https://some.website/test.php
發送 Post 請求,它會起作用。
如果我直接將 proxy_pass 傳遞給https://some.webserver/endpoint
,它就可以工作。
那我錯過了什么?
結果是 ssl 問題,添加了proxy_ssl_server_name on;
到 nginx 塊修復它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.