Nginx實(shí)現(xiàn)動(dòng)靜分離的示例代碼
結(jié)合本文場(chǎng)景,需要安裝Nginx和Java環(huán)境(運(yùn)行SpringBoot項(xiàng)目)。
1.1 關(guān)于Linux系統(tǒng)安裝Nginx可以參考我的文章---(傳送門)。
1.2 本文SpringBoot使用了Thymeleaf模板,項(xiàng)目端口號(hào)為8888。
1.3 在本地/Users/dalaoyang/Downloads/static文件內(nèi)存放了jquery.js
2.什么是動(dòng)靜分離?
在弄清動(dòng)靜分離之前,我們要先明白什么是動(dòng),什么是靜。
在Web開(kāi)發(fā)中,通常來(lái)說(shuō),動(dòng)態(tài)資源其實(shí)就是指那些后臺(tái)資源,而靜態(tài)資源就是指HTML,JavaScript,CSS,img等文件。
一般來(lái)說(shuō),都需要將動(dòng)態(tài)資源和靜態(tài)資源分開(kāi),將靜態(tài)資源部署在Nginx上,當(dāng)一個(gè)請(qǐng)求來(lái)的時(shí)候,如果是靜態(tài)資源的請(qǐng)求,就直接到nginx配置的靜態(tài)資源目錄下面獲取資源,如果是動(dòng)態(tài)資源的請(qǐng)求,nginx利用反向代理的原理,把請(qǐng)求轉(zhuǎn)發(fā)給后臺(tái)應(yīng)用去處理,從而實(shí)現(xiàn)動(dòng)靜分離。
在使用前后端分離之后,可以很大程度的提升靜態(tài)資源的訪問(wèn)速度,同時(shí)在開(kāi)過(guò)程中也可以讓前后端開(kāi)發(fā)并行可以有效的提高開(kāi)發(fā)時(shí)間,也可以有些的減少聯(lián)調(diào)時(shí)間 。
3.項(xiàng)目配置
修改SpringBoot應(yīng)用啟動(dòng)類,做簡(jiǎn)單跳轉(zhuǎn),使訪問(wè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,在引用成功會(huì)使用jquery給div賦值,代碼如下所示。
<!DOCTYPE html>
<!--解決th報(bào)錯(cuò) -->
<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>這是一個(gè)靜態(tài)頁(yè)面</h1>
<div id="test_div"></div>
</body>
<script type="text/javascript">
$('#test_div').html('引用jquery.js成功');
</script>
</html>
項(xiàng)目結(jié)構(gòu)如下所示,可以看到?jīng)]有jquery.js,我們要做的就是使用Nginx來(lái)訪問(wèn)jquery.js。
4.Nginx配置
修改nginx.conf配置,其中第一個(gè)location負(fù)責(zé)處理后臺(tái)請(qǐng)求,第二個(gè)負(fù)責(zé)處理靜態(tài)資源,如下所示。
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 10000;
server_name localhost;
#攔截后臺(tái)請(qǐng)求
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.測(cè)試
啟動(dòng)SpringBoot應(yīng)用,啟動(dòng)Nginx。
在瀏覽器訪問(wèn)http://localhost:10000/,可以看到如下圖所示。

通過(guò)圖中紅框內(nèi)容都可以看出來(lái)引用靜態(tài)資源成功了。
6.總結(jié)
最近一直在看有關(guān)nginx的東西,最近一段時(shí)間會(huì)持續(xù)更新相關(guān)nginx的文章,如果大家感興趣可以持續(xù)關(guān)注。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解
- Nginx配合Apache或Tomcat的動(dòng)靜分離基本配置實(shí)例
- 簡(jiǎn)單實(shí)現(xiàn)nginx+tomcat的反向代理與動(dòng)靜分離
- 使用Nginx+uWsgi實(shí)現(xiàn)Python的Django框架站點(diǎn)動(dòng)靜分離
- nginx實(shí)現(xiàn)負(fù)載均衡和動(dòng)靜分離
- nginx實(shí)現(xiàn)動(dòng)靜分離實(shí)例講解
- nginx實(shí)現(xiàn)動(dòng)靜分離的方法示例
- 部署Nginx+Apache動(dòng)靜分離的實(shí)例詳解
- Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡、動(dòng)靜分離的原理解析
- 使用nginx實(shí)現(xiàn)動(dòng)靜分離
相關(guān)文章
nginx隱藏響應(yīng)頭server信息和版本號(hào)信息的操作方法
文章介紹了兩種隱藏或修改Nginx響應(yīng)頭中server信息的方法:一種是通過(guò)修改配置文件全局段添加`server_tokens off`,另一種是重新編譯Nginx并修改Banner信息,兩種方法分別適用于傳統(tǒng)部署和需要更靈活自定義的情況,需要的朋友可以參考下2025-02-02
nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)rewrite、location的具體使用
本文主要介紹了nginx 網(wǎng)頁(yè)匹配跳轉(zhuǎn)rewrite、location的具體使用2024-05-05
在Nginx服務(wù)器上安裝配置博客程序Typecho的教程
這篇文章主要介紹了在Nginx服務(wù)器上安裝配置博客程序Typecho的教程,Typecho是一個(gè)開(kāi)源的PHP博客程序,比WordPress更加輕量,需要的朋友可以參考下2015-12-12
Nginx之Http模塊系列之a(chǎn)utoindex模塊的具體使用
這篇文章主要介紹了Nginx之Http模塊系列之a(chǎn)utoindex模塊的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Nginx?Gunicorn?flask項(xiàng)目部署思路分析詳解
這篇文章主要為大家介紹了Nginx?Gunicorn?flask項(xiàng)目部署思路分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解
這篇文章主要介紹了通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
詳解Nginx虛擬主機(jī)配置中server_name的具體寫法
這篇文章主要介紹了Nginx虛擬主機(jī)配置中server_name的具體寫法,server_name服務(wù)器名是虛擬主機(jī)中必須配置的重要參數(shù),需要的朋友可以參考下2016-03-03

