Chinaunix首页 | 论坛 | 博客
  • 博客访问: 929282
  • 博文数量: 245
  • 博客积分: 11429
  • 博客等级: 上将
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-15 00:16
文章存档

2011年(56)

2010年(174)

2009年(15)

分类: LINUX

2010-09-02 16:36:44

由于开始公司使用apache的web服务。但是随着用户量的增加,性能有所下降。为了减轻后端apache的压力,我做了一台nginx用来前端负载。
   至于nginx的安装我就不详细介绍了
    参考我的lemp详解吧:http://blog.chinaunix.net/u3/103362/showart_2301020.html
下面主要介绍一下关于nginx模块的相应优化配置
nginx.conf 的主要参考
        server_names_hash_bucket_size 128;##用于制定服务器名称哈希表的框大小,默认取决于cpu缓存
      
       limit_zone one $binary_remote_addr 10m;#定义一个叫one的记录区,容量为10m,一遍量$binary_remote_addr 作为绘画判断的基准。
       limit_conn one 1;#也可以写道location里one为上面定义的记录区,一个会话只能进行一个连接
      
       limit_req_zone $binary_remote_addr zone=one2:10m rate=1r/s;#限制了每秒只接受一个ip一次请求“请求数/秒 (r/s)
         limit_req zone=one2 burst=5;  ## 也可以在location里设置最大的突发请求数
       ignore_invalid_headers   on;
       recursive_error_pages    on;
       server_name_in_redirect off;
       if_modified_since exact; ##主要用来expires的时间修改

       sendfile                 on;##用于数据拷贝在两个文件描述符之间的操作函数。

       #timeouts
       keepalive_timeout 60;

       #TCP Options
       tcp_nopush  on;###只在sendfile开起的时候有用,是否允许使用tcp_cork 套接字
       tcp_nodelay on;

       #fastcgi options
       fastcgi_connect_timeout 300;
       fastcgi_send_timeout 300;
       fastcgi_read_timeout 300;
       fastcgi_cache_path /var/www/tmp/fastcgi_cache_path levels=1:2   keys_zone=fastcgi_cache:500m inactive=30m max_size=10000M;
       fastcgi_temp_path /var/www/tmp/fastcgi_temp_path;
       fastcgi_cache_methods GET HEAD;#缓存的信息
       fastcgi_cache_min_uses 3;#最小使用
       #fastcgi_cache fastcgi_cache;
       fastcgi_cache_valid 200 302 20m; #状态码200 302  缓存20分钟
       fastcgi_cache_valid 301 1h;#301缓存一个小时
       fastcgi_cache_valid any 20m;#其他说有缓存20分中
       fastcgi_cache_key 127.0.0.1:9000$request_uri;#用来设置被缓存的key
       fastcgi_buffer_size 128k;####设置服务器相应头部缓冲区大小
       fastcgi_buffers 4 128k;#设置fastcgi进程返回信息的缓冲区数量和大小,
       fastcgi_busy_buffers_size 128k;
       fastcgi_temp_file_write_size 128k;
       fastcgi_intercept_errors on;###用来是否把客户端4xx和5xx 错误页或允许nginx自动制定错误页

       #size limits
       client_max_body_size       50m;允许客户端请求的最大的单个文件字节数
       client_body_buffer_size    256k; 缓冲区代理缓冲用户客户端请求的最大字节数,可以理解为先保存到本地在传给用户
       client_body_timeout 60;#设置读取客户端请求内容的超时时间
       client_header_buffer_size 1k;#用户设置客户端请求的header头缓冲区大小
       large_client_header_buffers 4 32k;#最大缓存客户端请求header 大小

       #gzip  compression
       gzip on; #启动
       gzip any;无条件启用压缩,其中这里有几个选项我就不写了
       gzip_min_length  0;#允许压缩最小字节数,默认0不管多大都压,建议设置成大于1k,小于1k,越压越大,
       gzip_buffers     16 8k;
       gzip_http_version 1.0;#早期的客户端可能不支持gzip 打开是乱码,启用后可防止这一问题
       gzip_comp_level 9;#压缩级别1-9 9为最高
       gzip_types       text/plain text/css image/x-icon image/png;#匹配类型压缩
       gzip_vary on; #vary头信息 是cache明中率杀手可以考虑注释

       #temp files
       proxy_temp_path            /var/www/tmp/proxy_temp_path;
#       fastcgi_temp_path           /var/www/tmp/fastcgi_temp;
       client_body_temp_path       /var/www/tmp/client_body_temp;###用户存放请求内容的临时文件
       #client_body_temp_path  /usr/local/nginx8/client_body_temp 1 2;
       #proxy_temp_path        /usr/local/nginx8/proxy_temp 1 2;
       #fastcgi_temp_path      /usr/local/nginx8/fastcgi_temp 1 2;
       #proxy 麓煤?铆禄潞麓忙?猫??
            #proxy
           proxy_buffering on;
           proxy_buffer_size 16k; #代理请求缓存去,保存用户的信息以供nginx进行规则处理
           proxy_buffers 4 32k;#nginx保存单个的几个buffer 及最大用多大空间
           proxy_busy_buffers_size 64k;##如果系统很忙的时候可以申请更大的,推荐*2
           proxy_temp_file_write_size 64k;##缓存临时文件大小
          proxy_cache_min_uses 3;
          proxy_cache_path /var/www/tmp/proxy_cache_path levels=1:2 keys_zone=cache:500m inactive=30m max_size=10000M;#缓存
          proxy_cache_valid any 10m;
          proxy_cache_methods GET HEAD;
          proxy_cache_key "$host:$server_port$uri$is_args$args";
          proxy_ignore_client_abort off;
          proxy_intercept_errors on;
          proxy_next_upstream error timeout invalid_header;
          proxy_redirect off;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_connect_timeout 60; #跟后端服务器连接的超市时间=发起握手等候响应超时时间。
          proxy_send_timeout 60;#后端服务器数据回收时间=就是在规定时间之后后端服务器必须传完所有数据
          proxy_read_timeout 60;##连接成功后=等候后端服务器响应时间=就是进入等待了

虚拟机的参考:
    在locotion 里加上一句话
   proxy_cache cache; 这个要和nginx里的我用红色标记一样就可以调用这个缓存了。
先写这些吧!!以后继续更新
主要参考:张宴的博客http://blog.s135.com/
阅读(1187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~