问题描述
我是 nginx 新手,试了多次 proxy_pass 的跳转都无法跳转到站外。nginx 可以请求站外链接么?
目前有一个外部的API接口地址:http://122.23.21.212/api/v2?args=others&argc=4
现在我想实现这样的功能:
当我访问 http://localhost/myapi?args=others&args=4 的时候,其实 nginx 在内部是去访问 http://122.23.21.212/api/v2?args=others&argc=4 这个接口,请问这个需要怎么样进行配置呢?
shellserver { ... location /myapi {proxy_pass http://122.23.21.212/api/v2?$request_uri; } ...}
各位帮忙看看,谢谢
问题解答
回答1:server {... location /myapi {if ( $query_string ~ '(args=others&args=4)$') { rewrite ^/ http://122.23.21.212/api/v2;} } ... }
[fifilyu@archlinux ~]$ curl -I ’http://localhost/myapi?args=others&args=4’ HTTP/1.1 302 Moved Temporarily Server: nginx/1.8.0 Date: Wed, 06 May 2015 01:04:15 GMT Content-Type: text/html Content-Length: 160 Connection: keep-alive Location: http://122.23.21.212/api/v2?args=others&args=