首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略/不使用proxy_pass的NGINX重写

忽略/不使用proxy_pass的NGINX重写
EN

Stack Overflow用户
提问于 2018-09-05 23:28:40
回答 2查看 365关注 0票数 0

上游供应商应用程序中的Bug。在我们的节点应用程序中编写了一条路由来代理请求并避免错误,但无法使NGINX重写工作正常。我已经尝试了许多不同的重写,现在我的智慧结束了。花在重写上的时间比实际代码多..。=(

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-06 03:09:12

您根本不需要重写请求,您可以为proxy_pass指令追加一个路径,Nginx将用proxy_pass指令的URI替换来自原始请求URI的位置块的匹配部分。

所以这应该是可行的:

代码语言:javascript
复制
location /Txtranscription/transcription/TranscriptionHandler.ashx {
    set $args encoded=$arg_q;
    ....
    proxy_pass http://vapi/transcription$is_args$args;
票数 1
EN

Stack Overflow用户

发布于 2020-02-03 19:39:47

示例:

代码语言:javascript
复制
 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; ->

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52194606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档