QUERY_STRING以外のサーバーにデータをPOSTすると、fastcgiアプリケーションはnginxからすべてのパラメータを読み取ることができます。 CONTENT_LENGTHを見ると文字列の長さが正しく表示され、ブラウザに送信されるデータが表示されるので、何かが設定されていないと思ったり、間違った場所を探しているだけです。プロキシからアプリケーションにQUERY_STRINGを取得できません
私の場所のファイル:
location /testpage/test {
include fastcgi_params;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
fastcgi_pass unix:/var/run/fcgi-sock.fcgi;
fastcgi_param SCRIPT_FILENAME /www/test-app;
}
私のテストのアプリ:
#include "/usr/local/include/fcgiapp.h"
int main()
{
FCGX_Request request;
FCGX_Init();
FCGX_InitRequest(&request, 0, 0);
while (FCGX_Accept_r(&request) == 0)
{
FCGX_FPrintF(request.out, "Content-type: text/html\r\n\r\n <h1>Hello World!</h1>");
char* q=FCGX_GetParam("REQUEST_METHOD",request.envp);
if(q) FCGX_FPrintF(request.out, "%s", q);
else FCGX_FPrintF(request.out, "nope");
q=FCGX_GetParam("QUERY_STRING",request.envp);
if(q) FCGX_FPrintF(request.out, "%s", q);
else FCGX_FPrintF(request.out, "nope");
}
として、私は文字列を解析する必要があります知っているが、私はちょうど最初の場所で文字列を取得したいと私私はQUERY_STRINGではなく、REQUEST_METHODといくつかの他のパラメータを印刷することができます。
あなたのURLは何ですか? –