nginx缓存 html5,nginx 做缓存服务器

nginx是个很厉害的web-server除了做日常的web-server外还兼职做了缓存服务器。我参照张宴老师的博客做了回nginx缓存的实验。当然目前还是有些问题没有解决。安装我参照的http://youzao.blog.51cto.com/3946111/737273 网友的。

一、安装pcre

# tar zxvf pcre-8.20.tar.gz

#  cd pcre-8.20

#  ./configure

#  make

#  make install

二、安装nginx

tar zxvf ngx_cache_purge-1.4.tar.gz

#  tar zxvf nginx-1.1.10.tar.gz

#  cd nginx-1.1.10

#  ./configure --user=www --group=www --add-module=../ngx_cache_purge-1.4 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#  make

#  make install

#  mkdir -p /data/proxy_temp_dir

#  mkdir -p /data/proxy_cache_dir

三、配置nginx

user  www www;

worker_processes 8;

error_log  /data/logs/nginx_error.log  crit;

pid        /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 65535;

events

{

use epoll;

worker_connections 65535;

}

http

{

include       mime.types;

default_type  application/octet-stream;

charset  utf-8;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

sendfile on;

tcp_nopush     on;

keepalive_timeout 60;

tcp_nodelay on;

client_body_buffer_size  512k;

proxy_connect_timeout    5;

proxy_read_timeout       60;

proxy_send_timeout       5;

proxy_buffer_size        16k;

proxy_buffers            4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

gzip on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types       text/plain application/x-javascript text/css application/xml;

gzip_vary on;

proxy_temp_path   /data/proxy_temp_dir;

proxy_cache_path  /data/proxy_cache_dir  levels=1:2keys_zone=cache_one:200minactive=1dmax_size=30g;

upstream backend_server {

server   192.168.0.237:80 weight=1max_fails=2fail_timeout=30s;

}

server

{

listen       80;

server_name  www.5926.com;

location /

{

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_cache cache_one;

proxy_cache_valid  200 304 12h;

proxy_cache_key $host$uri$is_args$args;

proxy_set_header Host  $host;

proxy_set_header X-Forwarded-For  $remote_addr;

proxy_pass http://backend_server;

expires      1d;

}

location ~ /purge(/.*)

{

allow            127.0.0.1;

allow            192.168.0.0/24;

deny            all;

proxy_cache_purge    cache_one   $host$1$is_args$args;

}

location ~ .*\.(php|jsp|cgi)?$

{

proxy_set_header Host  $host;

proxy_set_header X-Forwarded-For  $remote_addr;

proxy_pass http://backend_server;

}

access_log  /data/logs/access_log.log combined;

}

}

四、启动nginx

[root@nginx_cache ~]# /etc/init.d/nginx start

nginx start ok

五、访问指定的测试页,验证缓存的生效;

访问测试页http://192.168.0.231/test.html

8af170fd302fe1c2c97e4e078019bfda.png

查看是否已生成缓存

[root@nginx_cache ~]# ll /data/proxy_cache_dir/

total 32

drwx------ 3 www www 4096 Feb 15 14:41 2

drwx------ 3 www www 4096 Feb 15 14:39 3

drwx------ 3 www www 4096 Feb 15 14:58 8

drwx------ 3 www www 4096 Feb 15 14:27 c

此处注意将缓存目录的权限服务nginx的www账户。我在测试的时候,未付权限发现缓存文件未生成;

此时,修改测试页内容。并使用别的机器访问,发现访问的内容没有变化,证明缓存生效了。

使用purge来清除缓存生成md5值;具体方法在修改后的页面路径前添加purge;

9d7625b3afeea07738ddd0037687c7d3.png

此处可以看到显示purge成功;

再用别的电脑去访问,发现以前的缓存已经去掉生成了新的缓存文件;

8d41476590e63c81d850153bda12ca6e.png

当然在生产环境下,这种纯靠手工更新的方式肯定是行不通的;所以可以通过curl等命令结合shell写脚本进行页面的更新;

遇到的问题:

参照张宴老师的博客,发现缓存服务器自身只能起到缓存及负载均衡的作用,但是自身的web-server配置并未生效;目前还不明白是什么问题;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值