若是只让Nginx作负载均衡和代理服务器,无疑会浪费掉不少Nginx的闲置资源,其实Nginx有很大的静态文件处理功能,那么咱们彻底能够把后端apache或Tomcat服务器上的静态文件交给Nginx来处理。php
如图,一台Nginx和两台Apache服务器作了负载均衡,咱们只须要访问Nginx服务器就能获取到Apache上的网页信息。咱们把这个网站的静态文件放在Nginx的web目录中,把动态文件放在Apache的web主目录中。这样,当咱们访问这个网站时,静态文件会在Nginx中读取,动态文件,会在Apache中读取。css
配置文件部份内容以下:html
http {web
……
apache
upstream app_web {后端
server 192.168.1.101 weight=1 max_fails=2 fail_timeout=30s;服务器
server 192.168.1.102 weight=1 max_fails=2 fail_timeout=30s; app
}负载均衡
server {ide
listen 80;
server_name www.abc.com;
location / {
root /data1/www/abc;
index index.php index.html index.htm;
proxy_pass http://app_web;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root /data1/www/abc; #本地静态文件存放目录
expires 3d; #过时时间
}
}
}
浅蓝色部分是须要设置的内容,依靠匹配网站文件后缀来决定是否为静态文件,而后指定本地存放静态文件的路径,并设定过时时间便可。