Nginx實現(xiàn)動靜分離的示例代碼
結(jié)合本文場景,需要安裝Nginx和Java環(huán)境(運行SpringBoot項目)。
1.1 關(guān)于Linux系統(tǒng)安裝Nginx可以參考我的文章---(傳送門)。
1.2 本文SpringBoot使用了Thymeleaf模板,項目端口號為8888。
1.3 在本地/Users/dalaoyang/Downloads/static文件內(nèi)存放了jquery.js
2.什么是動靜分離?
在弄清動靜分離之前,我們要先明白什么是動,什么是靜。
在Web開發(fā)中,通常來說,動態(tài)資源其實就是指那些后臺資源,而靜態(tài)資源就是指HTML,JavaScript,CSS,img等文件。
一般來說,都需要將動態(tài)資源和靜態(tài)資源分開,將靜態(tài)資源部署在Nginx上,當一個請求來的時候,如果是靜態(tài)資源的請求,就直接到nginx配置的靜態(tài)資源目錄下面獲取資源,如果是動態(tài)資源的請求,nginx利用反向代理的原理,把請求轉(zhuǎn)發(fā)給后臺應(yīng)用去處理,從而實現(xiàn)動靜分離。
在使用前后端分離之后,可以很大程度的提升靜態(tài)資源的訪問速度,同時在開過程中也可以讓前后端開發(fā)并行可以有效的提高開發(fā)時間,也可以有些的減少聯(lián)調(diào)時間 。
3.項目配置
修改SpringBoot應(yīng)用啟動類,做簡單跳轉(zhuǎn),使訪問根路徑可以跳轉(zhuǎn)到index.html,如下代碼所示。
@SpringBootApplication @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> <!--解決th報錯 --> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>thymeleaf</title> </head> <script type="text/javascript" src="jquery.js"></script> <body> <h1>這是一個靜態(tài)頁面</h1> <div id="test_div"></div> </body> <script type="text/javascript"> $('#test_div').html('引用jquery.js成功'); </script> </html>
項目結(jié)構(gòu)如下所示,可以看到?jīng)]有jquery.js,我們要做的就是使用Nginx來訪問jquery.js。
4.Nginx配置
修改nginx.conf配置,其中第一個location負責處理后臺請求,第二個負責處理靜態(tài)資源,如下所示。
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; } #攔截靜態(tài)資源 location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ { root /Users/dalaoyang/Downloads/static; } } }
5.測試
啟動SpringBoot應(yīng)用,啟動Nginx。
在瀏覽器訪問http://localhost:10000/,可以看到如下圖所示。
通過圖中紅框內(nèi)容都可以看出來引用靜態(tài)資源成功了。
6.總結(jié)
最近一直在看有關(guān)nginx的東西,最近一段時間會持續(xù)更新相關(guān)nginx的文章,如果大家感興趣可以持續(xù)關(guān)注。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nginx實現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實戰(zhàn)經(jīng)歷
這篇文章主要給大家介紹了一次關(guān)于nginx實現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實戰(zhàn)經(jīng)歷,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11nginx如何實現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈
這篇文章主要為大家介紹了nginx實現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11Nginx設(shè)置日志打印post請求參數(shù)的方法
這篇文章主要介紹了Nginx設(shè)置日志打印post請求參數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Nginx優(yōu)化服務(wù)之網(wǎng)頁壓縮的實現(xiàn)方法
這篇文章主要介紹了Nginx優(yōu)化服務(wù)之網(wǎng)頁壓縮的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01