Zavier's Blog

Nginx简易反向代理及缓存配置

介绍


nginx是一款轻量级的高性能Web服务器,它功能丰富,不但可以用来搭建网站,同时也能用于Web反向代理,负载均衡。反向代理技术也常被用于CDN加速。以下就列出使用Nginx来进行反向代理一个网站的配置模板。


服务器配置


Nginx可使用编译安装或者通过yum(RedHat系)、apt(Debian系)来安装。编译安装后配置文件在/usr/local/etc/nginx.conf,nginx.conf里面有http字段和server字段,要进行反向代理,可在配置中新建一个如下的server字段。

server
{
   listen 80;
   server_name example1.com;
   access_log /home/wwwlogs/proxy.log;
   location /
   {
   proxy_pass 反代网站域名;
   #proxy_cache_key $host$http_user_agent$uri$is_args$args; #缓存设置项,用于生成缓存文件名,仅反向代理时可不开启。
   proxy_set_header Host $host; #传递给后端服务器的主机头,默认与server_name相同
   proxy_set_header X-Forwarded-For $remote_addr; #将客户端IP地址传递给后端服务器
   proxy_cache_valid 200 304 10m; #配置不同响应代码的缓存过期时间
   proxy_connect_timeout 10s; #后端服务器响应超时时间 
   expires 2d; #缓存保存时间
   proxy_ignore_headers “Cache-Control” “Expires” “Set-Cookie”; #指定要忽略的后端服务器响应头
   }
   location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$ #指定不缓存文件的后缀名并单独配置
   {
   proxy_pass 反代网站域名;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $remote_addr;
   }
}

在nginx.conf中的http段内加入以下配置来对反向代理的缓存进行控制

proxy_temp_path /home/nginx/proxy_temp_dir;
proxy_cache_path /home/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=1g; #缓存文件设置
client_body_buffer_size 512k; #设置body缓冲区大小
proxy_connect_timeout 60; #设置后端服务器连接超时时间
proxy_read_timeout 60s; #设置连接成功后,后端服务器响应超时时间
proxy_send_timeout 60s; #设置后端服务器回传数据超时时间
proxy_buffer_size 32k; #限制后端服务器传输头文件大小
proxy_buffers 4 64k; #缓冲区大小配置
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k; #设置单次访问临时文件大小
proxy_cache cache_one;


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright © 2017-2019 Zavier的博客.网站地图