wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
先安装/hcdata/software/pcre-8.37
./configure
make && make install
./configure --user=www \
> --group=www \
> --prefix=/hcdata/server/nginx \
> --with-http_stub_status_module \
> --with-http_ssl_module \
> --with-http_gzip_static_module \
> --with-openssl=/usr/local/src/openssl-1.0.1c \
> --with-pcre=/hcdata/software/pcre-8.37 \
> --with-pcre-jit \
> --add-module=/hcdata/software/ngx_cache_purge-2.3
make && make install
接着nginx.conf的配置图片的缓存
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|mp3|mp4|wmv|txt)$
{
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
proxy_cache_key $host$uri$is_args$args;
proxy_pass http://ip:8098;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
server {
listen 8098;
server_name ip;
location / {
root /hcdata/www;
autoindex on;
}
proxy_pass 必须和proxy_cache成对出现 不然实现不了缓存
添加purge:
location ~ /purge(/.*) {
allow all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
其中出现404错误 原因是此location没有放在
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|mp3|mp4|wmv|txt)$ {
。。。。
}之前
正确的顺序是:
server {
listen 80;
server_name uadmin;
charset utf-8;
#access_log logs/host.access.log main;
location ~ /purge(/.*) {
allow all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|mp3|mp4|wmv|txt)$
{
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1m;
proxy_cache_valid any 1m;
proxy_cache_key $host$uri$is_args$args;
# root /hcdata/www;
# autoindex on;
proxy_pass http://*.*.*.*:8098;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location / {
# proxy_cache cache_one;
# proxy_cache_valid 200 304 12h;
# proxy_cache_valid 301 302 1m;
# proxy_cache_valid any 1m;
# proxy_cache_key $host$uri$is_args$args;
proxy_pass http://uadmin;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection Close;
proxy_set_header X-Forwarded-For $remote_addr;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache‘s document root
# concurs with nginx‘s one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
server {
listen 8098;
server_name *.*.*.*;
location / {
root /hcdata/www;
autoindex on;
}
}