亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解

 更新時(shí)間:2017年06月15日 09:06:21   作者:浮云中的毛驢  
本篇文章主要介紹了nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1.為什么要實(shí)現(xiàn)動(dòng)靜分離

1)nginx的處理靜態(tài)資源能力超強(qiáng)

主要是nginx處理靜態(tài)頁面的效率遠(yuǎn)高于tomcat的處理能力,如果tomcat的請(qǐng)求量為1000次,則nginx的請(qǐng)求量為6000次,tomcat每秒的吞吐量為0.6M,nginx的每秒吞吐量為3.6M,可以說,nginx處理靜態(tài)資源的能力是tomcat處理能力的6倍,優(yōu)勢可見一斑。

2)動(dòng)態(tài)資源和靜態(tài)資源分開,使服務(wù)器結(jié)構(gòu)更清晰。

2.動(dòng)靜分離原理

服務(wù)端接收來自客戶端的請(qǐng)求中,有一部分是靜態(tài)資源的請(qǐng)求,例如html,css,js和圖片資源等等,有一部分是動(dòng)態(tài)數(shù)據(jù)的請(qǐng)求。因?yàn)閠omcat處理靜態(tài)資源的速度比較慢,所以我們可以考慮把所有靜態(tài)資源獨(dú)立開來,交給處理靜態(tài)資源更快的服務(wù)器例如nginx處理,而把動(dòng)態(tài)請(qǐng)求交給tomcat處理。

如下圖所示,我們?cè)跈C(jī)器上同時(shí)安裝了nginx和tomcat,把所有的靜態(tài)資源都放置在nginx的webroot目錄下面,把動(dòng)態(tài)請(qǐng)求的程序都放在tomcat的webroot目錄下面,當(dāng)客戶端訪問服務(wù)端的時(shí)候,如果是靜態(tài)資源的請(qǐng)求,就直接到nginx的webroot目錄下面獲取資源,如果是動(dòng)態(tài)資源的請(qǐng)求,nginx利用反向代理的原理,把請(qǐng)求轉(zhuǎn)發(fā)給tomcat進(jìn)行處理,這樣就實(shí)現(xiàn)了動(dòng)靜分離,提高了服務(wù)器處理請(qǐng)求的性能。

3.動(dòng)靜分離的詳細(xì)配置

1)首先熟悉下nginx的重要配置文件nginx.conf

user nginx; 
worker_processes 1; 
error_log logs/error.log; 
pid    logs/nginx.pid; 
events { 
  worker_connections 1024; 
} 
http { 
  include    mime.types; 
  default_type application/octet-stream; 
  #日志格式定義 
  log_format main '$remote_addr - $remote_user[$time_local] "$request" ' 
           '$status $body_bytes_sent"$http_referer" ' 
           '"$http_user_agent" "$http_x_forwarded_for"'; 
  access_log logs/access.log main; 
  sendfile    on; 
  keepalive_timeout 65; 
  #gzip壓縮功能設(shè)置 
  gzip on; 
  gzip_min_length 1k; 
  gzip_buffers  4 16k; 
  gzip_http_version 1.0; 
  gzip_comp_level 2; 
  gzip_types text/plain application/x-javascripttext/css application/xml; 
  gzip_vary on; 
  server { 
    listen    80; 
    server_name www.test.com; 
    location / { 
  #jsp網(wǎng)站程序根目錄,一般nginx與tomcat在同一個(gè)目錄 
      root /usr/local/tomcat/webapps/ROOT; 
      index index.html index.jsp index.html; 
    } 
    location ~ .*.jsp$ { 
    index index.jsp; 
    proxy_pass http://127.0.0.1:8080;  #來自jsp請(qǐng)求交給tomcat處理 
    proxy_redirect off; 
    proxy_set_header Host $host;  #后端的Web服務(wù)器可以通過X-Forwarded-For獲取用戶真實(shí)IP 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    client_max_body_size 10m;  #允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù) 
    client_body_buffer_size 128k; #緩沖區(qū)代理緩沖用戶端請(qǐng)求的最大字節(jié)數(shù) 
    proxy_connect_timeout 90;  #nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí)) 
    proxy_read_timeout 90;   #連接成功后,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí)) 
    proxy_buffer_size 4k;    #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小 
    proxy_buffers 6 32k;    #proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的話,這樣設(shè)置 
    proxy_busy_buffers_size 64k;#高負(fù)荷下緩沖大?。╬roxy_buffers*2) 
    proxy_temp_file_write_size 64k; #設(shè)定緩存文件夾大小,大于這個(gè)值,將從upstream服務(wù)器傳 
    } 
    location ~ .*\.(gif|jpg|png|bmp|swf)$  #由nginx處理靜態(tài)頁面 
    { 
    expires 30d;  #使用expires緩存模塊,緩存到客戶端30天 
    } 
    location ~ .*\.( jsp|js|css)?$ 
    { 
    expires 1d; 
    } 
    error_page 404       /404.html;  #錯(cuò)誤頁面 
    error_page  500 502 503 504 /50x.html; 
    location = /50x.html { 
      root  html; 
    } 
  } 

2)配置動(dòng)靜分離

    #配置Nginx動(dòng)靜分離,定義的靜態(tài)頁面直接從Nginx發(fā)布目錄讀取。 
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { 
  root /webapps/myproject/code/static-resource; 
      #expires定義用戶瀏覽器緩存的時(shí)間為7天,如果靜態(tài)頁面不常更新,可以設(shè)置更長,這樣可以節(jié)省帶寬和緩解服務(wù)器的壓力 
  expires 1d; 
} 
location ~ ^/(WEB-INF)/ {#這個(gè)很重要,不然用戶就可以訪問了 
      deny all;  
    } 

這里需要注意,外部靜態(tài)文件的存放路徑,應(yīng)當(dāng)與請(qǐng)求中路徑一致,以免nginx拼接路徑后,由于路徑不存在而找不到文件。如果出現(xiàn)js、css等不加載的情況,可以查看nginx的errorlog進(jìn)行調(diào)試修正,日志位于nginx目錄下的logs目錄內(nèi),如下截取一段錯(cuò)誤的日志:

復(fù)制代碼 代碼如下:

[error] 7195#0: *1693 open() "/home/cms/include/dedeajax2.js" failed (2: No such file or directory), client: 101.226.35.225, server: localhost, request: "GET /cms/include/dedeajax2.js HTTP/1.1"   

可以看到,GET請(qǐng)求是 “ /cms/include/dedeajax2.js ”,這時(shí)nginx就會(huì)在配置中的 /home 下,尋找這一路徑的文件,完整路徑為:

/home/cms/include/dedeajax2.js 

報(bào)錯(cuò)為 no such file or directory ,就可以在對(duì)應(yīng)的 /home 目錄下看文件路徑的問題。

配置成功后,就可以發(fā)現(xiàn)靜態(tài)文件通過nginx處理了,靜態(tài)文件的請(qǐng)求不再進(jìn)入tomcat服務(wù)器,從而可以打包時(shí),靜態(tài)文件的目錄如js、css等不再打進(jìn)war包。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Nginx搭載rtmp直播服務(wù)器的方法

    使用Nginx搭載rtmp直播服務(wù)器的方法

    這次我們搭建一個(gè)rtmp直播服務(wù)器,用于電腦或手機(jī)直播推流到服務(wù)器,然后其他終端如電腦或手機(jī)可以觀看直播的視頻畫面。接下來通過本文給大家分享使用Nginx搭載rtmp直播服務(wù)器的問題,感興趣的朋友一起看看吧
    2021-10-10
  • Nginx 禁止IP訪問 只允許域名訪問

    Nginx 禁止IP訪問 只允許域名訪問

    今天要在Nginx上設(shè)置禁止通過IP訪問服務(wù)器,只能通過域名訪問,這樣做是為了避免別人把未備案的域名解析到自己的服務(wù)器IP而導(dǎo)致服務(wù)器被斷網(wǎng),從網(wǎng)絡(luò)上搜到以下解決方案
    2016-09-09
  • Nginx-rewrite模塊概述

    Nginx-rewrite模塊概述

    從功能上看 rewrite 和 location 似乎有點(diǎn)像,都能實(shí)現(xiàn)跳轉(zhuǎn),主要區(qū)別在于 rewrite 是在同一域名內(nèi)更改獲取資源的路徑,這篇文章主要介紹了Nginx-rewrite模塊詳細(xì)介紹,需要的朋友可以參考下
    2023-06-06
  • Nginx之rewrite重寫的具體使用

    Nginx之rewrite重寫的具體使用

    訪問重寫rewrite是Nginx HTTP請(qǐng)求處理過程中的一個(gè)重要功能,本文主要介紹了Nginx之rewrite重寫的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • nginx基于域名,端口,不同IP的虛擬主機(jī)設(shè)置的實(shí)現(xiàn)

    nginx基于域名,端口,不同IP的虛擬主機(jī)設(shè)置的實(shí)現(xiàn)

    這篇文章主要介紹了nginx基于域名,端口,不同IP的虛擬主機(jī)設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_port區(qū)別解析

    nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_por

    nginx為了實(shí)現(xiàn)反向代理的需求而增加了一個(gè)ngx_http_proxy_module模塊,其中proxy_set_header指令就是該模塊需要讀取的配置文件,這篇文章主要介紹了nginx配置中$http_host、$host、$host:$proxy_port和$host:$server_port區(qū)別,需要的朋友可以參考下
    2024-03-03
  • nginx優(yōu)化的六點(diǎn)方法

    nginx優(yōu)化的六點(diǎn)方法

    這篇文章主要介紹了nginx優(yōu)化的六點(diǎn)方法,有對(duì)nginx優(yōu)化不太熟悉的同學(xué)可以參考下
    2021-01-01
  • nginx設(shè)置資源緩存實(shí)戰(zhàn)詳解

    nginx設(shè)置資源緩存實(shí)戰(zhàn)詳解

    這篇文章主要介紹了nginx設(shè)置資源緩存實(shí)戰(zhàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • nginx服務(wù)器的下載安裝與使用詳解

    nginx服務(wù)器的下載安裝與使用詳解

    這篇文章主要介紹了nginx服務(wù)器的下載安裝與使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • nginx正向代理與反向代理詳解

    nginx正向代理與反向代理詳解

    本文給大家分享的是nginx實(shí)現(xiàn)正向代理和反向代理的具體方法配置以及不同的實(shí)例情況,非常的詳細(xì),希望大家能夠喜歡
    2020-03-03

最新評(píng)論