Nginx:作为cdn缓存时,follow 302

来源:互联网 发布:jquery json转字符串 编辑:程序博客网 时间:2024/05/20 09:06

一、说明

1.1 rewrite

        www.guowenyan.cn/test.html(任意url)

        rewrite

        www.guowenyan.cn/test01.html

1.2 302

        www.guowenyan.cn/test01.html

        302

        www.guowenyan.cn/test.html

二、配置nginx.conf

#user  nobody;worker_processes  1;events {    worker_connections  1024;}http {    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  logs/access.log  main;    sendfile        on;    keepalive_timeout  65;    #dns resolver    resolver 192.168.175.2:53 valid=1;    server {        listen       80;        server_name  localhost;        #set        proxy_intercept_errors on;        recursive_error_pages on;        #follow 302        #step 1,  rewrite "any url" to "/test01.html"        location / {             rewrite_by_lua '                        ngx.exec("/test01.html")                        ';        }        #step 2,  request "/test01.html", get 302 "/test.html"        location ~ /test01.html {                proxy_pass http://$host;                error_page 302 = @error_page_302;        }        #step 3,  follow 302, rewrite "/test.html"        location @error_page_302 {                rewrite_by_lua '                        local _, _, upstream_http_location = string.find(ngx.var.upstream_http_location, "^http://(.*)$")                        ngx.exec("/302-location/" .. upstream_http_location)                        ';        }        #step 4, request "/test.html"        location ~ /302-location/([^/]+)/(.*) {                proxy_pass http://$1/$2;        }    }}

三、测试

3.1 用了follow 302


3.2 没用follow 302




0 0