server config(nginx apache varnish)

==========Apache==========================


全局 容器 认证 日志 cgi 负载


1.全局变量:ServerRoot |keepalive |进程数|listen |modules|状态信息 

2.配置主服务器:user+group|ServerAdmin|ServerName|ServerTokens|DocumentRoot|容器|htaccess|索引 | Alias

3.建立虚拟Web站点 IP/域名




一、全局参数

--httpd.conf:   //基本设置

ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。 

Listen 80 #服务器监听的端口号。 

ServerName www.clusting.com:80 #主站点名称(网站的主机名)。 
ServerAdmin admin@clusting.com #管理员的邮件地址。 
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。 


--httpd-default.conf://持久连接

KeepAlive On #开启持久性连接功能。即当客户端连接到服务器,下载完数据后仍然保持连接状态。 
MaxKeepAliveRequests 100 #一个连接服务的最多请求次数。 
KeepAliveTimeout 30 #持续连接多长时间,该连接没有再请求数据,则断开该连接。缺省为15秒。 


--httpd-mpm.conf  //父子进程

<IfModule mpm_prefork_module> //子进程预派生

StartServers 5 #启动apache时启动的httpd进程个数。 

MinSpareServers 5 #服务器保持的最小空闲进程数。 

MaxSpareServers 10 #服务器保持的最大空闲进程数。 

MaxClients 150 #最大并发连接数。 

MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。 

</IfModule> 


<IfModule mpm_worker_module> //多进程多线程

StartServers 2 #启动apache时启动的httpd进程个数。 

MaxClients 150 #最大并发连接数。 

MinSpareThreads 25 #服务器保持的最小空闲线程数。 

MaxSpareThreads 75 #服务器保持的最大空闲线程数。 

ThreadsPerChild 25 #每个子进程的产生的线程数。 

MaxRequestsPerChild 0 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐设置为1000。 

</IfModule> 


二、容器

//目录容器

<Directory "/mnt/web/clusting"> 
Options FollowSymLinks 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 


<Directory "/mnt/web/clusting"> 
<Files private.html>//文件容器

Order allow,deny 

Allow from all 

</Files>

</Directory> 

//网络空间容器

<Location /private>

Order Allow,Deny

Deny from all

</Location>

//virtualhost

基于IP地址+多端口(listen 192.168.1.1 80  listen192.168.1.20 8080)Listen--端口

基于域名  NameVirtualHost--IP:

单个IP地址 NameVirtualHost *:80 | 多个IP地址 NameVirtualHost 192.168.1.20:80

三 .htaccess

--httpd.conf: 
AccessFileName .htaccess 
Alias /download/ "/var/www/download/" //路径别名
<Directory "/var/www/download"> 
Options Indexes 
AllowOverride AuthConfig 
</Directory> 


加入用户认证
/usr/local/apache2/bin/htpasswd -c /var/httpuser/passwords bearzhang 

--.htaccess
vi /var/www/download/.htaccess: 
AuthType Basic 
AuthName "Restricted Files" 
AuthUserFile /var/httpuser/passwords 
Require user bearzhang 
#Require valid-user #all valid user 



四、日志

(1)错误日志的设置 
ErrorLog logs/error_log #日志的保存位置 
LogLevel warn #日志的级别 

显示的格式日下: 
[Mon Oct 10 15:54:29 2005] [error] [client 192.168.10.22] access to /download/ failed, reason: user admin not allowed access 

(2)访问日志设置 

日志的缺省格式有如下几种: 
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 
LogFormat "%h %l %u %t "%r" %>s %b" common #common为日志格式名称 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 
CustomLog logs/access_log common 

五、CGI

ScriptAlias /cgi-bin/ "/mnt/software/apache2/cgi-bin/" # 访问时可以:http://www.clusting.com/cgi-bin/ 。但是该目录下的CGI脚本文件要加可执行权限! 
<Directory "/usr/local/apache2/cgi-bin"> #设置目录属性 
AllowOverride None 
Options None 
Order allow,deny 
Allow from all 
</Directory> 

六、负载均衡

Listen 202.x.xx.xxx:80        (别人访问的IP和端口)
<VirtualHost 202.x.xx.xxx:80>

     ServerAdmin admin@bit.com
     ProxyRequests On
     Proxypass / balancer://proxy/ 
     ProxySet lbmethod=bytraffic   //负载均衡算法,根据流量
     <Proxy balancer://proxy>
         Order Deny,Allow
         Allow from all
         BalancerMember http://10.0.0.1   loadfactor= 3 //weight
         BalancerMember http://10.0.0.2   loadfactor=  1   //去掉loadfactor ,加上status=+H,就能把10.0.0.2指定为备份服务器,一旦10.0.0.1出了问题,就能启用它,并每隔几分钟检查一下10.0.0.1好了没有,如果好了就转回10.0.0.1
     </Proxy>

</VirtualHost>




=======nginx=====================


all of:

knowledge多线程  异步  功能 

config 模块架构  基本配置  模块配置

exec 轻量 模块 抗并发



并发配置

工作模式

Http请求:连接-压缩-缓冲-负载-服务器

服务器:基本-错误-静态-状态-禁止-PHP脚本(默认-fastcgi-负载)


nginx相对于apache的优点:轻量级 抗并发 模块化

静态文件处理,前端Cache

抗并发--最核心的区别在于apache是同步多进程模型(阻塞型),一个连接对应一个进程,高并发容易有进程数飙升;nginx是异步非阻塞的,并发连接(万级别)可以对应一个进程。  [多进程apache 多线程iis 同步 请求响应 异步 请求不待响应 阻塞 等待IO 非阻塞 不待IO]

正则配置,简单易行


功能和原理

5大模块:核心 标准http 可选http 邮件服务 第三方模块
常用功能:
反向代理:判断并采取转发策略,对后端返回结果进行一场判断,不正常就另选一台,并剔除异常机器
负载均衡:大量前端并发访问分流道多个后端网络节点分别处理 ,方法有加权轮询 iphash  urlhash fair
web缓存:fastcgi cache:动态程序缓存 +   proxy cache:后端返回内容url缓存 + ngx_cache_purge 清除url缓存


IO模型:nginx处理请求:多进程和线程控制资源,异步非阻塞减少IO延迟
原理:
IO处理:也是事件处理机制,IO调用完成后主动通知工作进程,epoll模型,就是建立一个待处理事件列表,发生事件的描述符通知给它,避免了轮询整个事件列表
架构:主进程-服务启动  工作进程-请求处理   后端服务器-数据处理  缓存—依照本地缓存文件在内存中建立索引
注:平滑停止和重启:处理的请求完成并且不接新请求;启动新的后关闭旧的,如果旧的有问题就不切换 


包含关系:events  http  (   server  (  location 1  location2 ...  )    server2( ) ... )

user nobody nobody;                                                            #配置允许运行nginx服务器的用户和用户组

worker_processes  3;                                                   # worker process数

worker_rlimit_nofile 100000 


error_log  /var/log/nginx/error.log;                              #错误日志

pid        /var/run/nginx.pid;                                         #pid 文件存放路径和名称


#工作模式及连接数上限

events {


    use   epoll;                                                                 #事件驱动模型

    worker_connections  1024;                                        #最大连接数

    multi_accept on; 

}


#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {


    include       /etc/nginx/mime.types;                            #定义MIME-Type

    default_type  application/octet-stream;

    access_log    /var/log/nginx/access.log;


    sendfile        on;                                                           #允许使用sendfile传输方式

    tcp_nopush     on;                                                    

 

   # 配置fastcgi 功能

#服务器连接超时  

fastcgi_connect_timeout 200;

#发请求后的等待时间

fastcgi_send_timeout  200;

#发送请求后的响应超时时间

fastcgi_read_timeout 200;

#nginx读取应答数据等待的超时时间

fastcgi_buffer_size 64k;

#设置每次从fastcgi读取应答数据使用的缓存区大小

fastcgi_buffers 4 64k;

#设置每次将来自fastcgi的瘾大数据写入本地临时文件时数据块的大小上限

fastcgi_temp_file_write_size 128k;


    #连接超时时间


    keepalive_timeout  65;                                                  #配置连接超时时间

     log_format access.log  ‘$remote_addr-[$time_local]-”$request”-“$http_user_agent”';  #日志格式
    tcp_nodelay        on;                                                       


    #开启gzip压缩

    gzip  on;

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


    #设定请求缓冲

    client_header_buffer_size    1k;

    large_client_header_buffers  4 4k;

    #包含文件

    include /etc/nginx/conf.d/*.conf;

    include /etc/nginx/sites-enabled/*;


    #设定负载均衡的服务器列表

     upstream mysvr {

    server 192.168.8.1:3128 weight=5;

    server 192.168.8.2:80  weight=1;

    server 192.168.8.3:80  weight=6;

    }


    //服务器

   server {


    listen       80;                                                                           #配置监听端口和主机名称

    server_name  192.168.8.x;


    access_log  logs/www.xx.com.access.log  main;                    #配置日志存放路径


    # 定义错误提示页面


    error_page   500 502 503 504 /50x.html;                               #配置错误页面

        location = /50x.html {

        root   /root;

    }

    #静态文件,nginx自己处理

    location ~ ^/(images|javascript|js|css|flash|media|static)/ {

        root /var/www/virtual/htdocs;

        expires 30d;

    }

    #PHP 脚本请求


    location ~ \.php$ {                                                                           #配置处理~ \.php 请求的location

        root /root;

        index index.php index.html index.htm;  


        //请求发给fastcgi处理

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;

        include fastcgi_params;

     

       //设置负载均衡

        proxy_pass  http://mysvr ;#请求转向mysvr 定义的服务器列表

          #以下是一些反向代理的配置可删除.

          proxy_redirect off;

          #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

          proxy_set_header Host $host;

          proxy_set_header X-Real-IP $remote_addr;

          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

          client_max_body_size 10m;    #允许客户端请求的最大单文件字节数

          client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,

          proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)

          proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)

          proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)

          proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小

          proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

          proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)

          proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传

 

    }


    #设定查看Nginx状态的地址

    location /NginxStatus {

        stub_status            on;

        access_log              on;

        auth_basic              "NginxStatus";

        auth_basic_user_file  conf/htpasswd;

    }

 

  #设置对静态的媒体文件进行缓存,过期时间30天

    location ~* \.(jpg|jpeg|gif|png|swf)${

if(-f $request_filename){

root /home/www

                         expires 30d;

break;

}    

}

   #设置对静态的js文件和cs文件进行缓存,过期时间1天

   location  ~* \.(js|css)${

if(-f $request_filename){

root /home/www

                         expires 30d;

break;

}    

}


    #禁止访问 .htxxx 文件

    location ~ /\.ht {

        deny all;

    }

     

     }



nginx内核参数优化项:

linux:

net.ipv4.tcp_max_tw_buckets = 6000 #设定timewait的数量,默认是180000,这里设置为6000

net.ipv4.ip_local_port_range = 1024 65000   #用来设定允许系统打开的端口范围

net.ipv4.tcp_tw_recycle = 1 #设置启用timewait快速回收

net.ipv4.tcp_tw_reuse = 1 #设置开启重用,允许将TIME-WAIT sockets 重新用于新的TCP连接

net.ipv4.tcp_syncookies = 1 #设置开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies进行处理

net.core.somaxconn = 262144 #默认值是128,用于调节系统同时发起的tcp连接数,在高并发的请求中,默认的值可能会导致连接超时或者重传

net.core.netdev_max_backlog = 262144 #表示当每个网络接口,接收数据包,的速率,比内核,处理这些包的,速率快时,允许发送到 队列 的数据包的最大数目

net.ipv4.tcp_max_orphans = 262144 #防止简单DDOS攻击,不能过分依靠这个限制甚至人为减小这个值,更多的情况下应该增加这个值

net.ipv4.tcp_max_syn_backlog = 262144 #用于记录那些 尚未收到 客户端确认信息 的 连接请求 的最大值,对于有128MB内存的系统来说,默认值是1024,

net.ipv4.tcp_synack_retries = 1 #决定了内核放弃连接之前,发送SYN+ACK包的数量

net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量

net.ipv4.tcp_fin_timeout = 1   #决定了套接字保持在FIN-WAIT-2状态的时间,默认值是60秒,正确设置这个值非常重要,有时即使一个负载很小的web服务器,也会出现大量的死套接字而产生内存溢出的风险

net.ipv4.tcp_keepalive_time = 30 #当keepalived启用的时候,TCP发送keepalive消息的频度,默认值是2(单位是小时)


cpu:

worker_process 4; #nginx 服务进程数,cpu核数

worker_cpu_affinity  #每个进程分配cpu的工作内核


net:

keepalive_timeout 60 50;#服务器与客户端连接超过60s断开,消息头与浏览器保持连接不超过50s,

send_timeout 10s; #服务端等待时间超过10s,自动关闭连接

client_header_buffer_size  #允许nginx服务器接收较大的请求头部

multi_accept #尽可能多的接收网络请求


event:

use 指定驱动模型

worker_connections #nginx服务器每个工作进程允许同时连接客户端最大数

worker_rllmit_sigpending

devpoll_changes devpoll_events

kqueue_changes  kqueue_events

epoll_events

rtsig_signo

rtsig_overflow_* 




gzip:

gzip on;     //开启gzip功能

gzip_min_length 1024; //响应页数据上限

gzip_buffers 4 16k;//缓存空间大小

gzip_comp_elvel 2;//压缩级别为2

gzip_types text/plain application/x-javascript text/css application/xml;//压缩源文件类型

gzip_vary on;//启用压缩标识

gunzip_static on;//检查预压缩文件



Rewrite:

模块:ngx_http_upstream_module

语法:upstream server ip_hash  keep alive  least_conn | if break rewrite ...

功能配置:

域名跳转  web.site  ==>my.web.site

域名镜像  bj.web.site==>web.site.bj   tj.web.site==>web.site.tj

独立域名  home.web.site==>my.web.home  family.web.site==>web.site.family

目录自动添加 /   http://my.web.site/search ==>http://my.web.site/search/

目录合并 my.web.site/server/12/34/56/78/9.htm  ==>my.web.site/server-12-34-56-78-9.htm

防盗链: otherWebSitePic ==>  403   or   forbidden png 



Proxy:

概念常识:

proxy_pass 反向代理选项

proxy_buffer 用来缓冲处理异步请求,就是多次请求合并成一次发送,减少数据传输频率

proxy_cache 用来做缓存,和proxy_buffer的区别是用来读取硬盘数据到内存,提高相应速度,但是要开启proxy_buffer才能用


功能配置:

一般轮询 

加权轮询(weight) 

特定资源(video file) 

不同域名(home.website  bbs.website) 

url重写(rewrite)



Cache: 

proxy_store(静态404) proxy_cache(动态链接) 

memcache(可读不可写)  squid(硬盘) 

+varnish(内存,流行)



1、传统缓存之一(404)


这个办法是把nginx的404错误定向到后端,然后用proxy_store把后端返回的页面保存。


    location / {

    root /home/html/;#主目录

    expires 1d;#网页的过期时间

    error_page 404 =200 /fetch$request_uri;#404定向到/fetch目录下

    }


    location /fetch/ {#404定向到这里

    internal;#指明这个目录不能在外部直接访问到

    expires 1d;#网页的过期时间

    alias /home/html/;#虚拟目录文件系统地址要和locaion /一致,proxy_store会将文件保存到这目录下

    proxy_pass http://xok.la/;#后端upstream地址,/fetch同时是一个代理

    proxy_set_header Accept-Encoding '';#让后端不要返回压缩(gzip或deflate)的内容,保存压缩后的内容会引发乱子。

    proxy_store on;#指定nginx将代理返回的文件保存

    proxy_temp_path /home/tmp;#临时目录,这个目录要和/home/html在同一个硬盘分区内

    }


使用的时候还有要注意是nginx要有权限往/home/tmp和/home/html下有写入文件的权限,在linux下nginx一般会配置成 nobody用户运行,这样这两个目录就要chown nobody,设成nobody用户专用,当然也可以chmod 777,不过所有有经验的系统管理员都会建议不要随便使用777。


2、传统缓存之二(!-e)


原理和404跳转基本一致,但更简洁一些:


    location / {

    root /home/html/;

    proxy_store on;

    proxy_set_header Accept-Encoding '';

    proxy_temp_path /home/tmp;

    if ( !-f $request_filename )

    {

    proxy_pass http://xok.la/;

    }

    }


可以看到这个配置比404节约了不少代码,它是用!-f来判断请求的文件在文件系统上存不存在,不存在就proxy_pass到后端,返回同样是用proxy_store保存。


两种传统缓存都有着基本一样的优点和缺点:

缺点1:不支持带参数的动态链接,比如read.php?id=1,因为nginx只保存文件名,所以这个链接只在文件系统下保存为read.php,这样用户访问read.php?id=2时会返回不正确的结果。同时不支持http://xok.la/这种形式的首页和二级目录http: //xok.la/download/,因为nginx非常老实,会将这样的请求照链接写入文件系统,而这个链接显然是一个目录,所以保存失败。这些情况都需要写rewrite才能正确保存。

缺点2:nginx内部没有缓存过期和清理的任何机制,这些缓存的文件会永久性地保存在机器上,如果要缓存的东西非常多,那就会撑暴整个硬盘空间。为此可以使用一个shell脚本定期清理,同时可以撰写php等动态程序来做实时更新。

缺点3:只能缓存200状态码,因此后端返回301/302/404等状态码都不会缓存,假如恰好有一个访问量很大的伪静态链接被删除,那就会不停穿透导致后端承载不小压力。

缺点4:nginx不会自动选择内存或硬盘作为存储介质,一切由配置决定,当然在当前的操作系统里都会有操作系统级的文件缓存机制,所以存在硬盘上也不需要过分担心大并发读取造成的io性能问题。


nginx 传统缓存的缺点也是它和squid等缓存软件的不同之特色,所以也可看作其优点。在生产应用中它常常用作和squid的搭档,squid 对于带?的链接往往无法阻挡,而nginx能将其访问拦住,例如:http://xok.la/?和http://xok.la/在squid上会被当做两个链接,所以会造成两次穿透;而nginx只会保存一次,无论链接变成http://xok.la/?1还是http://xok.la/?123,均不能透过nginx缓存,从而有效地保护了后端主机。


nginx会非常老实地将链接形式保存到文件系统中,这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如rsync等配合使用,它完完全全就是一个文件系统结构。


这两种传统缓存都可以在linux下将文件保存到/dev/shm里,一般我也是这么做的,这样可以利用系统内存来做缓存,利用内存的话,清理过期内容速度就会快得多。使用/dev/shm/时除了要把tmp目录也指向到/dev/shm这个分区外,如果有大量小文件和目录,还要修改一下这个内存分区的 inode数量和最大容量:


    mount -o size=2500M -o nr_inodes=480000 -o noatime,nodiratime -o remount /dev/shm


上面的命令在一台有3G内存的机器上使用,因为/dev/shm默认最大内存是系统内存的一半就是1500M,这条命令将其调大成2500M,同时 shm系统inode数量默认情况下可能是不够用的,但有趣的是它可以随意调节,这里调节为480000保守了点,但也基本够用了。


3、基于memcached的缓存


nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。


    location /mem/ {

    if ( $uri ~ "^/mem/([0-9A-Za-z_]*)$" )

    {

    set $memcached_key "$1";

    memcached_pass 192.168.6.2:11211;

    }

    expires 70;

    }


这个配置会将http://xok.la/mem/abc指明到memcached的abc这个key去取数据。


nginx目前没有写入memcached的任何机制,所以要往memcached里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。


4、基于第三方插件ncache


ncache是新浪兄弟开发的一个不错的项目,它利用nginx和memcached实现了一部分类似squid缓存的功能,我并没有使用这个插件的经验,可以参考:


http://code.google.com/p/ncache/


5、nginx新开发的proxy_cache功能


从nginx-0.7.44版开始,nginx支持了类似squid较为正规的cache功能,目前还处于开发阶段,支持相当有限,这个缓存是把链接用md5编码hash后保存,所以它可以支持任意链接,同时也支持404/301/302这样的非200状态。


配置:


首先配置一个cache空间:


    proxy_cache_path /xok/to/cache levels=1:2 keys_zone=xok1:10m inactive=5m max_size=2m clean_time=1m;


proxy_temp_path参数路径也需要跟上面的proxy_cache_path在一个分区上,否则会报错。


注意这个配置是在server标签外,levels指定该缓存空间有两层hash目录,第一层目录是1个字母,第二层为2个字母,保存的文件名就会类似 /xok/to/cache/e/4a/0f1019b0db2f97d17c2238c0271a74ae;keys_zone为这个空间起个名字,10m指空间大小为10MB;inactive的5m指缓存默认时长5分钟;max_size的2m是指单个文件超过2m的就不缓存;clean_time指定一分钟清理一次缓存。


    location / {

    proxy_pass http://xok.la/;


    proxy_cache xok1;#使用xok1这个keys_zone


    proxy_cache_valid 200 302 1h;#200和302状态码保存1小时

    proxy_cache_valid 301 1d;#301状态码保存一天

    proxy_cache_valid any 1m;#其它的保存一分钟

    }


综合起来可以简单优化静态文件:


    location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv)$

    {

    proxy_pass http://backend;

    expires 6h; #设置浏览器过期时间

    proxy_cache xok1;#使用xok1这个keys_zone


    proxy_cache_valid 200 302 1h;#200和302状态码保存1小时

    proxy_cache_valid 301 1d;#301状态码保存一天

    proxy_cache_valid any 1m;#其它的保存一分钟

    }


注意:支持cache的0.7.44到0.7.51这几个版本的稳定性均有问题,访问有些链接会出现错误,所以这几个版本最好不要在生产环境中使用。 nginx-0.7下目前所知较为稳定的版本是0.7.39。稳定版0.6.36版也是近期更新,如果在配置里没有使用到0.7的一些新标签新功能,也可以使用0.6.36版。




varnish
配置文件--启动脚本--生成日志--命中率查看--调优管理

模式
varnish 是基于内存的缓存,vcl管理配置(receive--> look up->miss+hit->fetch+pass->fetch->delivery+pipe),可以用stat等管理,比 起squid有速度快、并发量高的特点

http
公用变量有,请求到达后可用,varnish向后端主机请求,cache或主机端请求,客户端应答几个节点都是http信息,如状态码、IP、端口、头部信息、新鲜度、缓存、url等。

缓存
配 置vcl流程是,选择IP和端口,调用vcl_recv,根据http方法选择模式,根据域名和后缀进行缓存,添加header标识判断缓存是否命中;也 能用来给多台web主机设定,选择一台用来指定负载权限,重点设计缓存,比如什么时候清除、什么时候读取和不读取、刷新缓存、缓存时间以及压缩内容

工具
varnishd 启动参数(-T管理程序地址端口,-a varnish侦听地址端口,-s存储类型和容量  -f使用的配置文件)和日志,通过telnet和varnish清除不需要的缓存,查看varnish进程和缓存效果(curl -I  url)来观察命中率和缓存效果,php脚本监测(命中与否、缓存和淘汰|过期数、累计请求数、缓存区头信息和正文长度等),通过这个来调优 (linux系统--内核参数net+ulimit  varnish- thread pools  min max timeout  lru  depth)

功用:图片防盗链 静态文件压缩


http://www.server110.com/varnish/201309/912.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值