Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.4k views
in Technique[技术] by (71.8m points)

nginx 反向代理中路径含有http://,转发后获取路径为http:/ 缺少一个斜杠

nginx配置:

    location /prerender {
                access_log  /var/log/nginx/prerender.log  main;
                rewrite ^/prerender/(.*)$ /render?url=$1 break;
                proxy_pass http://127.0.0.1:3010;
        }

nginx日志中看到的请求记录:
10.52.32.58 - - [21/Dec/2020:13:38:09 +0800] "GET /prerender/http://manhua-test.iqiyi.com/comic/index HTTP/1.0" 200 19254 "-" "Googlebot" "-"

node服务器中打印出来的请求路径为
/render?url=http:/manhua-test.iqiyi.com/comic/index

问题:为什么url=http:/中缺少一个斜杠?应该怎么处理解决?

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

把 URL encode 一下,然后在接收的地方 decode吧,应该是 nginx 转义了双斜杠


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...