nginx rewrite 重定向的問題解決

  •  目的: 是經過 nginx重寫 到個人開發電腦便於debug調試;

最終的nginx配置:html

最終的nginx 配置:

server {
        listen   80; ## listen for ipv4; this line is default and implied

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name mtest.v1.cn;

        location / {
                proxy_pass http://192.168.51.170:8080;
                rewrite ^/video/(.*)$   /mobileplay/$1 break;
        }
}
  • nginx 關於 rewrite 指令最後一項的參數說明:

    last :  至關於apache裏的 [L]標示,表示完成rewrite;nginx

    break:本條規則匹配完成後,終止匹配,再也不匹配後面的規則;apache

    redirect:返回302臨時重定向,瀏覽器地址欄會顯示跳轉後的url地址;瀏覽器

    permanent: 返回301 永久重定向,瀏覽器地址會顯示跳轉後的url地址;服務器

在以上的標示中,last和break 用來實現url重寫,瀏覽器地址欄的url地址不會變化;redirect和permanent用來實現url跳轉,瀏覽器地址欄會顯示跳轉後的url地址;ide

  • 注意的問題:

    nginx rewrite 指令在重寫時:this

若是寫成:
rewrite ^/video/(.*)$   http://192.168.51.170:8080/mobileplay/$1 break;

此種方式會形成 瀏覽器url地址的變化;
緣由是: nginx 重寫後的地址若是以「http://」 開頭 nginx 就會做爲 重定向處理,即便是以 last 、break 結束;

具體實現須要添加 proxy_pass 代理到指定的服務器,見上面的的正確配置;
相關文章
相關標籤/搜索