第一, nginx 的介绍
1 nginx 从0.7.48 版本后凯斯,支持烈士squid的缓存功能。该缓存是把URL及相关组合当作key,然后用md5编码哈希后保存在硬盘上,因此nginx 支持任意的URl连接,同时也支持404/301/302 这样非200 状态码。虽然目前官方nginx web 缓存服务器只能为指定的URL或者状态码设置过期时间,但是不支持类似squid的purge 指令,需要手动清除缓存页面,但是,通过第三方的nginx模块,可以清楚指定URL的缓存,当然nginx的web缓存服务主要是由 proxy_cache相关指令集和fastcgi_cache相关指令集构成,而proxy_cache 主要是用于反向代理,又来缓存后端服务器的内容源而Fastcgi_cache 主要缓存的是动态程序

下载相关的软件包

prce-8.00.tar.gz ngx_cache_purge-1.2.tar.gz nginx-0.8.53.tar.gz

第三,装相关的软件包

#tar xvf prce-8.00.tar.gz

#cd prce-8.00

#./configure

#make && make install

#useradd -s /sbin/nologin www

#cd ../

#tar –xvf ngx_cache_purge-1.2.tar.gz

#tar nginx-0.8.53.tar.gz

#cd nginx-0.8.53

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

#make && make install

第四,修改并配置nginx

#cd /usr/local/nginx/conf

#vim nginx.conf

#user nobody;

#开启的进程数

worker_processes 1;

#定义错误日志的路径及其日志级别

error_log /usr/local/nginx/logs/error.log crit;

#nginx 的进程

pid logs/nginx.pid;

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

#文件句柄数,和系统单进程打开的文件数相同,不必理会进程个数

worker_rlimit_nofile 65535;

events {

use epoll;

worker_connections 1024; #定义的是单个进程的连接数,该值受系统进程打开文件数限制,需要修改打开的文件句柄数,但是max_client = worker_proxesses X work_connextions,

}

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" '

'"request_method $scheme://$host$request_uri $server_protocol" $status $body_bytes_sent'

'"$http_user_agent" "$http_x_forwarded_for"';

# 指定服务器名称哈希的大小,hash bucket size 等于一路处理器缓存大小,与server_names_hash_max_size 共同控制保存服务器名的HASH表

server_names_hash_bucket_size 128;

# 以下两项是设定客户端请求Header头缓存去的大小,4 为个数。128k 为大小。申请4个128k。当http 的uri太长或者request header 过大时会报414 Request URI too large 或者400 bad request

client_header_buffer_size 32k;

large_client_header_buffers 4 128k;

。#HTTP请求的BODY 最大限制,若超出此值,报413 Request Entity Too Lager



client_max_body_size 8m;

#缓冲去代理用户请求的最大字节数,可以理解为先保存本地,然后在传给用户

client_body_buffer_size 32k;

#不允许客户端主动关闭连接,如果该项为设置在nginx的日志中可能出现499 错误

proxy_ignore_client_abort on;

#nginx 和后端服务器连接超时时间 发起握手等候响应时间

proxy_connect_timeout 5;

#连接成功后等候后端服务器响应时间,其实已经进入后端的排队等候处理

proxy_read_timeout 60;

#后端服务器数据回传时间,就是在规定的时间内后端服务器必须传完所有的数据

proxy_send_timeout 5;

#代理请求缓存去,该缓存去间保存用户的头信息,以供nginx进行规则处理一般只要保能保存下头信息即可

proxy_buffer_size 32k;

#告诉nginx保存单个用的几个buffer 最大用多少空间

proxy_buffers 4 64k;

#高负载下缓冲大小(proxy_buffers*2)

proxy_busy_buffers_size 128k;,

#设置缓存文件夹大小,如果大于该值,将从upstream 服务器传递请求,而不缓冲到磁盘上

proxy_temp_file_write_size 1024m;

#shutdown error display nginx version

# 关闭错误时的nginx 的版本显示

server_tokens off;

#open os function sendfile

# 打开高效的文件传输模式

sendfile on;

#tcp_nopush on;

tcp_nopush on; # 打开linux TCP_CORK,只有sendfile 打开时,该项才有效,用来发送系统HTTP response headers 设置选项的目的是告诉TCP协议不要仅仅为清空发送的缓存而发送报文段。通常三个设置TCPNOPUSH 插口选项。当请求长度超过报文段最大长度时,协议就好可能发出满长度的报文段,这样可以减少报文段的数量,减少的程度取决于每次发送的数量