若是隻讓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; #過時時間
}
}
}
淺藍色部分是須要設置的內容,依靠匹配網站文件後綴來決定是否爲靜態文件,而後指定本地存放靜態文件的路徑,並設定過時時間便可。