nginx $ request_method é alterado de POST para GET antes do log devido a redirecionamentos internos

2

Versão NGINX: 1.10.3 em um Debain 9.1 OS com Jessie-Backports nginx.conf :

user www-data;
pid /var/run/nginx.pid;
worker_processes  1;
error_log /var/log/nginx/error.log;
events {
    worker_connections 1024;
}
http {
    log_format main 'request_method:$request_method request:$request';
    server {
        listen 80;
        error_page  405  =200 $uri;
        access_log /var/log/nginx/access.log main;
        location / {
            default_type text/html;
            root   /usr/share/nginx/html/;
            include mime.types;
            index  index.html index.htm index.asp index.aspx index.php default.html default.htm default.asp default.aspx default.php;
        }
        error_page   403                       /403.html;
        error_page   400 401 402 404           /404.html;
        error_page   500 502 503 504           /50x.html;
        location = /400.html {
                root    /usr/share/nginx/error-pages/Apache/2.4.20;
        }
        location = /403.html {
                root    /usr/share/nginx/error-pages/Apache/2.4.20;
        }
        location = /404.html {
                root    /usr/share/nginx/error-pages/Apache/2.4.20;
            }
        location = /50x.html {
                root    /usr/share/nginx/error-pages/Apache/2.4.20;
        }
    }
}

Quando eu POST deste servidor, já que o nginx não pode exibir páginas estáticas em POST , recebo um código de resposta 405 . Mas também preciso veicular a página estática em uma solicitação POST . Então, a maioria das soluções alternativas na Internet sugeriu esse trecho de código = error_page 405 =200 $uri;
Isso funcionou bem para o propósito de veicular conteúdo estático para uma solicitação POST com código de resposta 200 , MAS < br> Devido ao $uri , os redirecionamentos internos do nginx fazem com que o $request_method mude de POST para GET e no /var/log/nginx/access.log , eu recebo isto:

request_method:GET request:POST /Login.html HTTP/1.1\n
em vez de request_method:POST request:POST /Login.html HTTP/1.1\n

Alguma solução alternativa para resolver isso?

    
por Akki 14.11.2017 / 18:48

0 respostas

Tags