转载:nginx配置文件的location标签执行顺序和反向代理配置

location / {
        }
        location ~ .*\.(gif)$ {
        }

对于这样的配置文件,开始我一直没弄清楚他的顺序,比如/gif.gif这个文件,我开始以为location /{} 这里是匹配的,所以开始要执行里面的东西,然后到location ~ .*\(gif)$ {}又能匹配,然后又执行里面的代码,其实这种思路是错的。

   nginx执行顺序其实很简单,正则表达式优先,然后才是普通的。相当于就是SQL的 ORDER BY 正则表达式的LOCATION,先后顺序.

   location /{虽然在前面,不过location ~.*\.gif是正则,所以他匹配 location ~.*\.gif.

  下面贴一个我常用的nginx反向代理配置。(前端缓存图片,js和flash文件)

  1.  
    1. user  nobody;  
    2. worker_processes  2;  
    3. events {  
    4.     use epoll;  
    5.     worker_connections  1024;  
    6. }  
    7. http {  
    8.     include       mime.types;  
    9.     default_type  application/octet-stream;  
    10.     sendfile        on;  
    11.     keepalive_timeout  65;  
    12.     server {  
    13.         listen 80;  
    14.         server_name  localhost;  
    15.         charset utf-8;  
    16.         root caches;  
    17.         proxy_set_header Host $host;  
    18.         proxy_set_header Client-Ip $remote_addr;  
    19.         proxy_connect_timeout    5;  
    20.         proxy_read_timeout       60;  
    21.         proxy_send_timeout       60;  
    22.         location / {  
    23.             proxy_pass http://192.168.0.1:8080;  
    24.         }  
    25.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {  
    26.             proxy_store on;  
    27.             proxy_store_access user:rw group:rw all:rw;  
    28.             proxy_temp_path caches;  
    29.             if (!-e $request_filename) {  
    30.                 proxy_pass http://192.168.0.1:8080;  
    31.             }  
    32.         }  
    33.     }  
posted @ 2010-08-08 20:23  那年那月  阅读(3362)  评论(0编辑  收藏  举报