如果只让Nginx做负载均衡和代理服务器,无疑会浪费掉很多Nginx的闲置资源,其实Nginx有很大的静态文件处理功能,那么我们完全可以把后端apache或Tomcat服务器上的静态文件交给Nginx来处理。
如图,一台Nginx和两台Apache服务器做了负载均衡,我们只需要访问Nginx服务器就能获取到Apache上的网页信息。我们把这个网站的静态文件放在Nginx的web目录中,把动态文件放在Apache的web主目录中。这样,当我们访问这个网站时,静态文件会在Nginx中读取,动态文件,会在Apache中读取。
配置文件部分内容如下:
http {
……
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;
}
server {
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; #过期时间
}
}
}
浅蓝色部分是需要设置的内容,依靠匹配网站文件后缀来决定是否为静态文件,然后指定本地存放静态文件的路径,并设定过期时间即可。
原文地址:http://liupengfang1015.blog.51cto.com/6627801/1783445