Windows下實現Nginx+Tomcat動靜分離


參考自:https://juejin.im/entry/5a3ddb5df265da43333e9b25

一、什么是動靜分離

 所謂動靜分離就是通過nginx(或apache等)來處理用戶端請求的圖片、html等靜態的文件,tomcat(或weblogic)處理jsp、do等動態文件,從而達到動靜頁面訪問時通過不同的容器來處理。

nginx處理靜態頁面效率遠高於tomcat,而tomcat擅長動態頁面處理,這樣一來就能更好的提高並發,處理性能。

二、結構圖

 

 

三、安裝Nginx

 

從Nginx官網nginx.org/下載最新的版本:

 

 

其中,mainline是主線版,stable是穩定版,這里選擇穩定版進行下載,下載下來之后,進入到該目錄:

1、啟動nginx
start nginx

2、停止:
nginx.exe -s stop #stop是快速停止nginx,可能並不保存相關信息;

nginx.exe -s quit #quit是完整有序的停止nginx,並保存相關信息。

3、重新載入Nginx:
nginx.exe -s reload #當配置信息修改,需要重新載入這些配置時使用此命令。

然后訪問localhost,出現如下的頁面

四、安裝、配置Tomcat

運行成功后訪問localhost:8080

然后在webapp目錄下新建一個nginx目錄並在該目錄下創建一個index.jsp和一個img目錄,index.jsp內容如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html>
<body>
<h2>Nginx動靜分離</h2>
<%  
        out.println("["+request.getLocalAddr()+":" +request.getLocalPort()+"]" + "<br/>session id:" + session.getId());   
%> 
<br/>
<img alt="圖片" src="/nginx/img/1.jpg" style="width:300px;height:300px">
</body>
</html>

然后訪問: http://localhost:8080/nginx/

 

五·、配置Nginx動靜分離

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    access_log  E:/AA-PORTAL/nginx-1.13.10/logs/access.log ;

    sendfile        on;

    keepalive_timeout  65;


     #配置代理
     upstream mynginx{
	server 127.0.0.1:8080;
     }


    server {
        listen       80;
        server_name 127.0.0.1;
	charset    utf-8; #設置編碼為utf-8;


        location / {
            root   E:/AA-PORTAL/nginx-1.13.10/webapps;
            index  index.html index.htm;
        }

	# 所有動態請求都轉發給tomcat處理  
	location ~ \.(jsp|do)$ {  
		proxy_next_upstream http_502 http_504 error timeout invalid_header;
		proxy_pass http://mynginx;
	}  
	
	#靜態文件交給nginx處理
	location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
	{
		root  E:/AA-PORTAL/nginx-1.13.10/webapps;
	}
	#靜態文件交給nginx處理
	location ~ .*\.(js|css)?$
	{
		root E:/AA-PORTAL/nginx-1.13.10/webapps;
	}
	error_page   500 502 503 504  /50x.html;  

	location = /50x.html {
		root   html;
	}
    }

}

然后通以下命令重啟nginx

.\nginx.exe -s reload

通過nginx訪問tomcat

 

 

可以訪問,說明配置的nginx生效了,但是圖片沒有顯示,這是由於靜態的文件交由nginx處理了,所以在上面配置的路徑下新建文件夾:nginx/img,然后把圖片復制到

E:\AA-PORTAL\nginx-1.13.10\webapps\nginx\img目錄下就行了

然后從新訪問該地址,就能成功的顯示了!

 


免責聲明!

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



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