nginx rewrite
rewrite
server { #需要转发的监听端口, listen 80; server_name localhost; #access_log logs/host.access.log main; #Used & Product Api #所以的path(/)都可以进这个location进行匹配 location / { root html; index index.html index.htm; proxy_pass http://0.0.0.0:30008/; #加break表示本条规则匹配完成后,终止匹配,不再匹配后面的规则。 rewrite ^/provider/rmsj/rps_search_2.7/product.json /Product break; } #Category Apis #path符合这个规则(^~/provider/rmsj/category/)的才可以进这个location进行匹配 location ^~/provider/rmsj/category/ { root html; index index.html index.htm; #转发到其他host或者port proxy_pass http://0.0.0.0:30003/; rewrite ^/provider/rmsj/category/category_set/all/get /CategorySetsGet break; rewrite ^/provider/rmsj/category/category/all/get /CategorysGet break; rewrite ^/provider/rmsj/category/category/get /CategoryGet break; rewrite ^/provider/rmsj/category/category/post /CategoryInsert break; rewrite ^/provider/rmsj/category/category/put /CategoryUpdate break; rewrite ^/provider/rmsj/category/category/delete /CategoryDelete break; rewrite ^/provider/rmsj/category/category/move /CategoryMove break; } #Navigation Api location ^~/provider/rmsj/navigation/ { root html; index index.html index.htm; proxy_pass http://0.0.0.0:30005/; if ($arg_operation = 'GenreSearch') { rewrite ^/provider/rmsj/navigation/search /GenreGet break; } if ($arg_operation = 'GenreAndTagSearch') { rewrite ^/provider/rmsj/navigation/search /GenreTagGet break; } if ($arg_operation = 'Header') { rewrite ^/provider/rmsj/navigation/search /GenreHeaderGet break; } } }
rewrite参考正则表达式规则
"$arg_"作为前缀加在parameter名之前,可以获得该parameter的值,如operation=GenreSearch,那么$arg_operation就可以获取值GenreSearch。
本文只介绍了我用到的内容,其他可以参考http://www.linuxidc.com/Linux/2014-01/95493.htm