Nginx實現動靜分離

結合本文場景,需要安裝Nginx和Java環境(運行SpringBoot項目)。

1.什麼是動靜分離?
在弄清動靜分離之前,我們要先明白什麼是動,什麼是靜。

在Web開發中,通常來說,動態資源其實就是指那些後臺資源,而靜態資源就是指HTML,JavaScript,CSS,img等文件。

一般來說,都需要將動態資源和靜態資源分開,將靜態資源部署在Nginx上,當一個請求來的時候,如果是靜態資源的請求,就直接到nginx配置的靜態資源目錄下面獲取資源,如果是動態資源的請求,nginx利用反向代理的原理,把請求轉發給後臺應用去處理,從而實現動靜分離。

在使用前後端分離之後,可以很大程度的提升靜態資源的訪問速度,同時在開過程中也可以讓前後端開發並行可以有效的提高開發時間,也可以有些的減少聯調時間 。

2.項目配置
修改SpringBoot應用啓動類,做簡單跳轉,使訪問根路徑可以跳轉到index.html,如下代碼所示。

@SpringBootApplicationbr/>@Controller
public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}

@GetMapping("/")
public String index(){
    return "index";
}

}
複製代碼
index.html代碼如下所示,注意引入jquery.js,在引用成功會使用jquery給div賦值,代碼如下所示。

<!DOCTYPE html>

thymeleaf

這是一個靜態頁面

複製代碼 項目結構如下所示,可以看到沒有jquery.js,我們要做的就是使用Nginx來訪問jquery.js。 ![](https://s1.51cto.com/images/blog/201901/02/dc8a850a3a6e02292d975d6aaa8c2e54.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 3.Nginx配置 修改nginx.conf配置,其中第一個location負責處理後臺請求,第二個負責處理靜態資源,如下所示。 worker_processes 1; events { worker_connections 1024; } http { server { listen 10000; server_name localhost; #攔截後臺請求 location / { proxy_pass http://localhost:8888; proxy_set_header X-Real-IP $remote_addr; } #攔截靜態資源 location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ { root /Users/dalaoyang/Downloads/static; } } } 複製代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章