2013-12-16 14:14:02
来 源
itjs.cn
Nginx
本文介绍Nginx缓存配置实例,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。
proxy模块中常用的指令时proxy_pass和proxy_cache.

nginx的web缓存功能的主要是由proxy_cache、fastcgi_cache指令集和相关指令集完成,proxy_cache指令负责反向代理缓存后端服务器的静态内容,fastcgi_cache主要用来处理FastCGI动态进程缓存。

确认proxy模块安装好后,下面对nginx的配置文件进行设置,重点部分如标红字体所示。

这是nginx.conf配置文件。

#########################################

user www-data;

worker_processes 1;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for" "$host"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#Compression Settings

gzip on;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_proxied any;

gzip_min_length 1100;

gzip_buffers 16 8k;

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

# Some version of IE 6 don't handle compression well on some mime-types,

# so just disable for them

gzip_disable "MSIE [1-6].(?!.*SV1)";

# Set a vary header so downstream proxies don't send cached gzipped

# content to IE6

gzip_vary on;

#end gzip

#cache begin

proxy_buffering on;

proxy_cache_valid any 10m;

proxy_cache_path /data/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;

proxy_temp_path /data/temp;

proxy_buffer_size 4k;

proxy_buffers 100 8k;

#cache end

## Basic reverse proxy server ##

## Apache (vm02) backend for www.example.com ##

upstream apachephp {

server www.quancha.cn:8080; #Apache1

}

## Start www.quancha.cn ##

server {

listen 80;

server_name *.quancha.cn;

access_log logs/quancha.access.log main;

error_log logs/quancha.error.log;

root html;

index index.html index.htm index.php;

## send request back to apache1 ##

location / {

proxy_pass http://apachephp;                 

proxy_cache my-cache;

proxy_cache_valid 200;

#使用匹配判断,如果在my-cache中已缓存了某文件,则可用proxy_pass  my-cache直接支取出送给客户端;

##################################################

#if ( !-e  $request_filename )

# {

# proxy_pass  http://backend_server_spool;

# }注: 该项是如果client 请求的文件在cache 中保存,nginx 直接从cache中把对应的文件返还给client ,不会在去后端的Server 去取对应的文件

##################################################

######################

if (-d $request_filename){

rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;

}

######################

#Proxy Settings

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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

proxy_max_temp_file_size 0;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

##End Proxy Settings

}

}

## End www.quancha.cn ##

}

####################################

配置文件中以proxy_开头的指令我们大都可以字面意思得到理解。请务必注意一点proxy_cache_path和proxy_temp_path设置的目录需要在同一分区,因为它们之间是硬链接的关系。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。