现在很多网站都用nginx做本机加速,降低磁盘读写,或者是nginx扮演反向代理的角色,可以减低后端服务器的压力。
在cdn中,很多厂商,比如360加速乐、阿里云cdn都是用nginx(或者Tengine)实现。
下面是一个简单的配置实例,实现用nginx加速。
用一台机器做cdn,源站ip为: 42.96.158.236 cdn服务器ip为:42.62.73.54 。因用于测试直接在cdn服务器上安装epel源,yum安装nginx,省去编译麻烦。
cdn nginx主配置文件:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; ### cdn head ### 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; proxy_temp_path /home/temp_dir; proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g; include /etc/nginx/conf.d/*.conf; ### cdn end ### }
虚拟主机配置文件:
upstream web { server 42.96.158.236 max_fails=3 fail_timeout=20s; } server { listen 80; server_name www.rootop.org; location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) { proxy_pass http://web; proxy_redirect off; proxy_set_header Host $host; ### cdn head ### proxy_cache cache_one; proxy_cache_valid 200 302 1h; proxy_cache_valid 301 1d; proxy_cache_valid any 1m; add_header Cache "$upstream_cache_status"; ### cdn end ### expires 30d; } location / { proxy_pass http://web; 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_temp_path /home/temp_dir #临时目录
proxy_cache_path /home/cache #缓存数据目录
add_header Cache “$upstream_cache_status”; #在响应头中添加命中标记
现在等于2台服务器,一台源,一台cdn加速。通过智能dns实现轮询或者地域区分。
现在访问网站首页,或者一张图片,通过火狐firebug或者chrome开发者工具F12可以看到响应头中为命中。
现在在发表这篇文章时,访问cdn服务器并不能看到新文章,原因就是因为首页被缓存了。有一种方法,就是在编译nginx的时候添加 ngx_cache_purge 模块,用于清除指定url,这里我没有安装,直接重启下cdn的nginx即可。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2941.html