一.last & breaknginx
(1)last 和 break 當出如今location 以外時,二者的做用是一致的沒有任何差別。跨域
注意一點就是,他們會跳過全部的在他們以後的rewrite 模塊中的指令,去選擇本身匹配的location瀏覽器
(2)last 和 break 當出如今location 內部時,二者就存在了差別服務器
last: 使用了last 指令,rewrite 後會跳出location 做用域,從新開始再走一次剛剛的行爲性能
break: 使用了break 指令,rewrite後不會跳出location 做用域。它的生命也在這個location中終結。spa
網友解釋通俗易懂:debug
nginx官方解釋:
last:
ngx_http_rewrite_module
directives followed by a search for a new location matching
break:
ngx_http_rewrite_module
directives;
2、permanent & redirect:日誌
permanent: 永久性重定向。請求日誌中的狀態碼爲301code
redirect:臨時重定向。請求日誌中的狀態碼爲302server
從實現功能的角度上去看,permanent 和 redirect 是同樣的。不存在好壞。也不存在什麼性能上的問題。可是對seo會有影響,這裏要根據須要作出選擇
在 permanent 和 redirect 中提到了 狀態碼 301 和 302。 記住:last 和 break 想對於的訪問日誌的請求狀態碼爲200
這兩類關鍵字差別:
當你打開一個網頁,同時打開debug 模式時,會發現301 和 302 時的行爲是這樣的。第一個請求301 或者 302 後,瀏覽器從新獲取了一個新的URL ,而後會對這個新的URL 從新進行訪問。因此當你配置的是permanent 和 redirect ,你對一個URL 的訪問請求,落到服務器上至少爲2次;而當你配置了last 或者是break 時,你最終的URL 肯定下來後,不會將這個URL返回給瀏覽器,而是將其扔給了fastcgi_pass或者是proxy_pass指令去處理。請求一個URL ,落到服務器上的次數就爲1次。
注意:配置last 在跨域的時候效果和redirect一致,都是返回302狀態碼,請求地址也發生改變