IIS喜欢NGINX上的URL重写和proxy_pass

时间:2017-09-08 04:54:19

标签: nginx url-rewriting proxypass

我的服务器有CORS问题,在开发阶段会造成很多痛苦。以前我使用Windows时,IIS重写模块很容易。就像是;

  <rules>
     <rule name="ReverseProxyInboundRule3" stopProcessing="true">
         <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_URL}" pattern="^.*(pattern1|pattern2|pattern3|pattern4).*$" />
            </conditions>
            <action type="Rewrite" url="https://example.com/{R:1}" logRewrittenUrl="true" />
     </rule>
  </rules>

所以说我的环境中的电话是;

localhost:8080/folder1/folder2/folder3/pattern1?param1=val1&param2=val2&param3=val3

请求发送到

https://example.com/pattern1?param1=val1&param2=val2&param3=val3

我尝试了一些基本的重写技巧,但遗憾的是无法使其工作,而不是在nginx的重写语法上经历过。

1 个答案:

答案 0 :(得分:0)

经过一些试验(有些是乐观的选择)我找到了如何做我想要的。

  rewrite ^.*(/pattern1/.*)$ $1 last;
  location /pattern1 {
      proxy_pass         https://example.com;
  }

请注意location blockproxy_pass指令上没有尾部斜杠。此外,关键字last在重写指令结束时使用,因为我是从location

执行的