Nginx動靜分離


動靜分離

     Nginx動靜分離是讓動態網站里的動態網頁根據一定規則把不變的資源和經常變的資源區分開來,動靜資源做好了拆分以后,我們就可以根據靜態資源的特點將其做緩存操作,這就是網站靜態化處理的核心思路。

upstream apptest{  

       server localhost:8080;  
       server localhost:8090; 
 
    }  


server {  
        listen       80;  
        server_name  localhost;  

    location / {
            root /usr/local/nginx/html;
            index index.html index.htm;
        }

        # 所有靜態請求都由nginx處理,存放目錄為html

        location ~.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
            root /usr/local/nginx/html;
        }
 
    
        # 所有動態請求都轉發給tomcat處理
        location ~.(jsp|do)$ {
        proxy_pass http://apptest;
       proxy_redirect off;
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 50m;
        client_body_buffer_size 512k;
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        proxy_buffer_size 10k;
        proxy_buffers 4 64k;
        proxy_busy_buffers_size 128k;
        proxy_temp_file_write_size 128k;
         }
 
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
           
        }  

    }  

     這樣我們就可以吧HTML以及圖片和css以及js放到wwwroot目錄下,而tomcat只負責處理jsp和請求,例如當我們后綴為gif的時候,Nginx默認會從wwwroot獲取到當前請求的動態圖文件返回,當然這里的靜態文件跟Nginx是同一台服務器,我們也可以在另外一台服務器,然后通過反向代理和負載均衡配置過去就好了,只要搞清楚了最基本的流程,很多配置就很簡單了,另外localtion后面其實是一個正則表達式,所以非常靈活.

配置實例:

upstream tomcat7{
        server 192.168.100.105:8080;

        }


server {
    listen       80;
    server_name  www.saneri.com;
    
    location / {
            root /usr/local/nginx/html;
            index index.html index.htm;
        }
 
    location ~.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
            root /usr/local/nginx/html;
        }
 


    location ~.(jsp|do)$ {
    proxy_pass http://tomcat7;
    proxy_redirect off;
    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 50m;
    client_body_buffer_size 512k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 10k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
     }

   location /nginx_status {
          stub_status on;
           access_log off;
          allow 127.0.0.1;
          deny all;
 }
   error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for" $request_time';

    access_log  /usr/local/nginx/logs/access.log  access;
Nginx動靜分離配置實例

參考文檔:http://mp.weixin.qq.com/s?__biz=MzA5ODM5MDU3MA==&mid=2650862492&idx=1&sn=55f10cd62c6fc7c9c9dc663da785ca29&chksm=8b6614d9bc119dcf2cc514b8b1cd26c3dfb3c5b3c76d072c14426bddbc3d74d3c89776b561e0&mpshare=1&scene=23&srcid=0307txlEuzthfEW8WeqtqifW#rd

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM