您的位置:首页 > 运维架构 > Nginx

使用 Nginx 静态化动态网站

2015-10-15 22:40 543 查看
«
Nginx 配置虚拟主机Python 使用 UTF-8 编码 »

使用 Nginx 静态化动态网站

发表于:2010年1月25日 | 分类:Server | 标签:
cache,
html, nginx |
views(8,460)
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.

原文出处:http://blog.chenlb.com/2010/01/nginx-cache-dynamic-web.html

Nginx 有几种缓存动态网站,详情请看:nginx缓存cache的5种方案。我的需求是保存动态页面为静态文件即可。然后写个脚本定时删除超过给定时间的html文件。这样可以减轻动态网站的压力。

使用 nginx 的 proxy_store 模块,匹配:

http {  
    server {  
        listen       80;  
        server_name  test.chenlb.com;  
        access_log  logs/test.access.log  main;  
        gzip on;  
        location / {  
            root   /home/www/cache;  
            proxy_store on;  
            proxy_set_header Accept-Encoding '';  
            proxy_temp_path /home/www/tmp;  
  
            rewrite ^/$ /index.html last;  
            if ( !-f $request_filename ) {  
                proxy_pass http://127.0.0.1:81$request_uri;  
            }  
        }  
    }  
}  

上面大概意思:判断请求 uri 是否存在 /home/www/cache,没有就是请求 127.0.0.1:81 的,然后保存到 root 下

据说 /home/www/cache 与 /home/www/tmp 目录要在同一目录(我没试)

使用 rewrite ^/$ /index.html last; 的目的是把 / 的请求保存为 index.html,否则警告说不能保存目录(自己还不熟悉 nginx 匹配,这个功能也是试探着使用,误打误撞。)。

网上还有关于 try_files 结合 perl_module 来实现静态化文件,与删除缓存的文件。但试了N次没有成功(总是报错 eval )。只好用 proxy_store,还要写脚本去删除过期文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: