上游供应商应用程序中的Bug。在我们的节点应用程序中编写了一条路由来代理请求并避免错误,但无法使NGINX重写工作正常。我已经尝试了许多不同的重写,现在我的智慧结束了。花在重写上的时间比实际代码多..。=(
IN: /Txtranscription/transcription/TranscriptionHandler.ashx?q=c3R1ZHlfaWQ...
OUT: /Txtranscription/transcription/TranscriptionHandler.ashx?q=c3R1ZHlfaWQ...
EXPECTED: /transcription?encoded=c3R1ZHlfaWQ...
### override handling of /Txtranscription/transcription/TranscriptionHandler.ashx
location /Txtranscription/transcription/TranscriptionHandler.ashx {
add_header Access-Control-Allow-Origin $cors_header;
access_log logs/vapi.proxy.log lfupstream;
error_log logs/vapi.error.log error;
rewrite ^/Txtranscription/transcription/TranscriptionHandler\.ashx\?q=(.*)$ /transcription?encoded=$1 break;
proxy_pass http://vapi;
}发布于 2018-09-06 03:09:12
您根本不需要重写请求,您可以为proxy_pass指令追加一个路径,Nginx将用proxy_pass指令的URI替换来自原始请求URI的位置块的匹配部分。
所以这应该是可行的:
location /Txtranscription/transcription/TranscriptionHandler.ashx {
set $args encoded=$arg_q;
....
proxy_pass http://vapi/transcription$is_args$args;发布于 2020-02-03 19:39:47
示例:
location ~ ^/connector(/?)(.*)$ {
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
proxy_set_header Authorization "";
set $upstream_endpoint http://YOUR-END-POINT/$2$is_args$args;
proxy_pass $upstream_endpoint;
}魔术是-> location ~ ^ /admin (/?)(.*)$
然后是/$2$is_args$args; ->
https://stackoverflow.com/questions/52194606
复制相似问题