NGINX反向代理对HTML页面的POST请求返回405状态码解决方法

实现如下:

server {
    listen	80;
    listen	443 ssl;
    server_name	nirvana.test-a.gogen;

    ssl_certificate      /etc/nginx/ssl/nirvana.test-a.gogen.crt;
    ssl_certificate_key  /etc/nginx/ssl/nirvana.test-a.gogen.key;

    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;

    client_max_body_size 10m;

    #error_page 405 =200 /ding/face_matching.html;

    location / {
        proxy_pass http://nirvana-server-a;
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location ~.*\.(html|css|js|jpg|json|png|map|\ttf*|\woff2*|\woff*|eot|otf|ttf|json|cur|woff|svg|woff2|m3u8|ts|mp3)$ {
        proxy_method GET;
        proxy_pass http://nirvana-browser-a;
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
    access_log  /var/log/nginx/nirvana-test-a.log  main;
}

备注:解决方法有很多,我这里是强制将请求转换为GET

猜你喜欢

转载自blog.51cto.com/270142877/2129073