Nginx图片缓存服务器配置
Nginx是目前非常流行的web服务器,它起源于俄罗斯。它具有处理速度快,并发量大,占用资源极低等优点,尤其对于静态资源的处理更佳,有测试证明是apache的30倍。现在已经广泛的应用于多家门户网站、中大型网站中,作为反向代理、图片缓存服务器等。
本例是结合张宴的blog(blog.s135/nginx_cache/),做的变动。
主站是IIS7.5(192.168.36.70),用的是 3.5+sql 2005,用于处理aspx,ashx等动态网页程序,而网站的图片服务器为nginx(centos 5.6,IP:192.168.33.243).
1.网站结构
主站(iis 7.5)的网页结构为:
注意:myimages目录,是nginx图片服务器的主目录,放到这里作为一个虚拟目录的原因,是在centos上做了一个samba,让windows共享到这个目录,方便主站程序对图片上传和管理。更好的解决方案是,把所有的资源放到存储上。
Nginx图片服务器的目录结构为:
注意:images是nginx服务器的主目录,images1和images2是图片服务器的分支目录,用于存放图片,更专业的做法,是用当前月份命名目录,更加方便管理图片。proxy_cache_dir和proxy_temp_dir分别是作为nginx图片服务器的缓存目录和临时目录。用户只要访问一次图片,nginx就会把图片缓存到proxy_cache_dir目录底下。
2.nginx图片服务器配置
1. centos5.6上安装nginx.安装步骤如下:
wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.
tar zxvf pcre-8.
cd pcre-8.00/
./configure
make && make install
cd ../

wgetlabs.frickle/files/ngx_cache_purge-1.
tar zxvf ngx_cache_purge-1.

wget/download/nginx-0.8.
tar zxvf nginx-0.8.
cd nginx-0.8.32/nginx 配置文件
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.0 --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
注意:要建立www用户和www用户组
2. 配置nginx的配置文件
注意nginx的图片服务器访问地址为:192.168.33.243:8080,nginx缓存服务器为:192.168.33.243,故我们需要在Nginx上配置两个web服务器,让后一个缓存前一个,iis主站的程序直接调用缓存服务器的图片,绕过了真实的图片服务器。
  配置文件如下:
user  wwwwww;

worker_processes 8;

error_log  /usr/local/webserver/nginx/logs/nginx_error.log  crit;

pid        /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;

events
{
  use epoll;
  worker_connections 65535;
}

http
{
  include      pes;
  default_type  application/octet-stream;

  charset  utf-8;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 300m;
     
  sendfile on;
  tcp_nopush    on;

  keepalive_timeout 60;

  tcp_nodelay on;

  client_body_buffer_size  512k;
  proxy_connect_timeout    5;
  proxy_read_timeout      60;
  proxy_send_timeout      5;
  proxy_buffer_size        16k;
  proxy_buffers            4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;


  gzip on;
  gzip_min_length  1k;
  gzip_buffers    4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types      text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

  #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
  proxy_temp_path  /data0/proxy_temp_dir;
  #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
  proxy_cache_path  /data0/proxy_cache_dir  levels=1:2  keys_zone=cache_one:200m inactive=1d max_size=30g;
 
  #upstream backend_server {
   # server  192.168.8.43:80 weight=1 max_fails=2 fail_timeout=30s;
    #server  192.168.8.44:80 weight=1 max_fails=2 fail_timeout=30s;
    #server  192.168.8.45:80 weight=1 max_fails=2 fail_timeout=30s;
  #}

  server//此处为缓存服务器
  {
    listen      80;
    server_name  192.168.33.243;
   

    location /
    {
       
        proxy_cachecache_one;
        #对不同的HTTP状态码设置不同的缓存时间
        proxy_cache_valid  200 304 12h;
        #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
        proxy_cache_key $host$uri$is_args$args;
        proxy_set_header Host  $host;
        proxy_set_header X-Forwarded-For  $remote_addr;
        proxy_pass192.168.33.243:8080;//此处跳转到真实的图片服务器

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。