nginx 反向代理,动静态请求分离 proxy cache缓存及缓存清除

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

一,nginx反向代理配置

     #tomcat

 

显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向nginx所在IP)的时候(或将www.wolfdream.com直接写在nginx所在的IP地址),将请求转到到后台的tomcat服务器,即127.0.0.1:8080,并将请求到的数据转发给client

二,动静态请求相分离

   神马意思?图片,JS,HTML等静态的东西去访问一台专门的服务器,而动态的请求去访问另一台服务器。就这么简单,上例子:

 

 
   
server { 
       listen       192.168 . 154.128 : 80 ;  
       server_name  image . wolfdream . com ;  
index index . html ;  


# proxy_pass http: // tomcat_server ;     

# charset koi8-r ;  

# access_log  logs / host . access . log  main ;  



       location / { 
           root   html ;  
# index  index . html index . htm ;  
             proxy_redirect off ;  
      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 ~ . * /.( gif|jpg|jpeg|png|bmp|swf )$  


    valid_referers none blocked 192.168 . 154.128 192.168 . 154.1 ;  
if ($ invalid_referer )  
    { 
        rewrite ^  / 403 . jpg break ;  
    } 

if ( !-f $ request_filename ) { 
                 rewrite ^ / 404 . jpg last ;  
               }  

               expires 30d ;  


# error_page  404               / 404 . html ;  

# redirect server error pages to the static page / 50x . html 
#  
       error_page   500 502 503 504   / 50x . html ;  
       location = / 404 . jpg { 
           root   html ;  
       } 

    } 

tomcat 
   upstream tomcat_server{ 
server 127.0 . 0.1 : 8080 ;    
   } 


   server{ 
listen 192.168 . 154.128 ;  
server_name www . wolfdream . com ;  

location / { 


      proxy_redirect off ;  
      proxy_set_header Host $ host ;  
      proxy_set_header X-Real-IP $ remote_addr ;  
      proxy_set_header X-Forwarded- For $ proxy_add_x_forwarded_for ;  
      proxy_pass http: // tomcat_server ;  





   }

 

上面这种方式是通过设定不同的域名,可不可以在同一个域名中,通过判断后缀来将动态与静态请求相分离呢?

 

 
   
# tomcat 
   upstream tomcat_server{ 
server 127.0 . 0.1 : 8080 ;    
   } 


   server{ 
listen 192.168 . 154.128 ;  
server_name www . wolf . com ;  

location ~ . * /.( gif|jpg|jpeg|png|bmp|swf )$  


      root html ;  




location ~ . * /.( jsp| do )$ { 

      proxy_redirect off ;  
      proxy_set_header Host $ host ;  
      proxy_set_header X-Real-IP $ remote_addr ;  
      proxy_set_header X-Forwarded- For $ proxy_add_x_forwarded_for ;  
      proxy_pass http: // tomcat_server ;  

 

OK!同一个域名,根据后缀不同,请求不同的服务,实现动态静态请求相分离。仔细想一想,如果又出现了一种静态的文件,比如*.abc ,那难道又去修改那个配制文件吗?显然不太合理,所以可以考虑将所有的表态文件放在同一个根目录下面,比如/static那么可以将上面的静态页面请求修改一下:

 

 
   
ocation  / static 
    { 

          root html / static ;  

    } 

 

咦这样是不是就好一些了,而且文件的存放也比较有规范了。

三,nginx缓存应用

nginx具有web缓存服务,proxy_cache,但是有一个问题就是,proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,但是有问题,有人就会很快解决问题,nginx第三方模块ngx_cache_purge能清除指定URL。

  nginx安装时需要将ngx_cache_purege加载进去。

 

 
   
./ configure --user = www --group = www --add-module =/ root / dxm / nginx / ngx_cache_purge- 1.2   

 

其中,/root/dxm/nginx/ngx_cache_purge-1.2为ngx_cache_purge解压路径(附件中提供ngx_cache_purge tar包下载)

现在来一段实例,实现图片缓存:

   话说proxy_tem_path,与proxy_cache_path必须在同一个分区之下!

 

 

 
   
upstream tomcat_server{ 
    server 127.0 . 0.1 : 8080 ;    
    } 


    server{ 
    listen 192.168 . 154.128 ;  
    server_name www . wolf . com ;  

    location ~ . *
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值