Nginx Location

location是nginx配置中一個指令,用於訪問URL配置,而在這個location中所配置的每一個指令將啓動不一樣的模塊去完成相應工做。php

默認nginx.conf 中至少有一個location /,即表示客戶端瀏覽器請求的URL爲域名+/,常見方式以下:css

=                         字面精確匹配;
^~                         最大前綴匹配;
/                         不帶任何前綴:最大前綴匹配;
~                         大小寫相關的正則匹配;
~*                        大小寫無關的正則匹配;
@                        location內部重定向的變量。

Location = 精確匹配會被第一個處理,若是發現精確匹配,Nginx則中止搜索其餘任何Location的匹配html

^~爲最大前綴匹配,若是匹配到該規則,Nginx則中止搜索其餘任何location的匹配,不然Nginx會繼續處理其餘location指令linux

Location規則優先級若是:nginx

(location =)>(location 完整路徑)>(location ^~ 路徑)>(location ~|~*) >(location 部分起始路勁)>(location /)

以下爲Nginx Location規則案例web

location  = / {
  [ configuration  L1 ] 
  #只會匹配/,優先級比Location /低。
}
location  = /index.html {
  [ configuration  L2 ]  
#只會匹配/index.html,優先級最高。
}
location  / {
  [ configuration L3 ] 
  #匹配任何請求,由於全部請求都是以"/"開始;
  #可是更長字符匹配或者正則表達式匹配會優先匹配,優先級最低。
}
location = /images/ {
  [ configuration L4 ] 
  #匹配任何以/images/開始的請求,並中止匹配其它location;
}
location ~* \.(html|txt|gif|jpg|jpeg)$ { 
  [ configuration L5] 
  # 匹配以html、txt、gif、jpg、jpeg結尾的URL文件請求; 
  # 可是全部/images/目錄的請求將由 [Configuration L4]處理。
}
瀏覽器發起HTTP Request URI案例與Location規則案例匹配以下:
    / ->匹配configuration L3;
    /index.html匹配configuration L2;
    /images/匹配configuration L4;
    /images/logo.png匹配configuration L4;
    /img/test.jpg匹配configuration L5。

常見添加以下:正則表達式

location /
{
    root /var/www/html/;
    expires      60d;
}
location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
    root /var/www/html/;
    expires      60d;      
}
location ~ .*\.(jsp|php|cgi|do)$
{
    root /var/www/html/;
    proxy_pass http://linux_web;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header Host  $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
}
location =/newindex.html
{
    root /var/www/newwww/;
    expires      60d;
}
相關文章
相關標籤/搜索