介绍
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;
评论