标签(空格分隔): nginx
1 反向代理:Web服务器的“经纪人”
1.1 反向代理初印象
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
从上图可以看出:反向代理服务器位于网站机房,代理网站Web服务器接收Http请求,对请求进行转发。
1.2 反向代理的作用
1.2.1 保护网站安全:任何来自Internet的请求都必须先经过代理服务器;
1.2.2 通过配置缓存功能加速Web请求:可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力;
1.2.3 实现负载均衡:充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力;
2 设定最最简单的负载均衡
2.1 设定两台虚拟服务器
新建文件 192.168.8.200:80,设定虚拟主机
server {
listen 80;
server_name 192.168.8.200;
#设定本虚拟主机的访问日志
access_log logs/192.168.8.200.log;
}
新建文件 192.168.8.201:80,设定虚拟主机
server {
listen 8080;
server_name 192.168.8.201;
index index.html index.htm;
root /var/www/html;
}
2.2 配置负载均衡服务器
#设定http服务器,利用它的反向代理功能提供负载均衡支持
#设定负载均衡的服务器列表
upstream myProxy1 {
#weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.8.200:80 weight=2;
server 192.168.8.201:80 weight=8;
}
server{
/*****************省略N多***********************/
listen 80;
server_name demo.proxy.com;
access_log logs/$host.access.log main;
error_log logs/$host.error.log;
root html;
index index.html index.htm index.php;
# 将动态文件.php请求转发给后端 http://myProxy 负载均衡服务器列表
location ~ \.php$ {
proxy_pass http://myProxy;
proxy_redirect off;
# 传递真实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;
#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_connect_timeout 90;
proxy_read_timeout 90;
proxy_send_timeout 90;
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer_size 4k;
#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_buffers 4 32k;
#高负荷下缓冲大小(proxy_buffers*2)
proxy_busy_buffers_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
proxy_temp_file_write_size 64k;
#允许客户端请求的最大单文件字节数
client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数,
client_body_buffer_size 128k;
}
}
3 开启gzip
#压缩配置#
gzip on; #打开gzip压缩功能
gzip_min_length 1k; #压缩阈值
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 2; #压缩级别:1-10,数字越大压缩的越好,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型
gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"
gzip_disable "MSIE [1-6]\."; #IE1-6版本不支持gzip压缩
4 缓存静态资源
缓存图片
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
root static/image;
if(-f $request_filename){
expires 7d;
break;
}
}
缓存css
location ~ .*\.(css)$
{
root static/css;
if(-f $request_filename){
expires 7d;
break;
}
}
缓存js
location ~ .*\.(js)$
{
root static/js;
if(-f $request_filename){
expires 7d;
break;
}
}