最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx在前后端分離中的作用以及對比

 更新時間:2026年05月22日 08:53:34   作者:bug攻城獅  
文章對比了直接訪問(不使用Nginx)與使用Nginx(反向代理)兩種方式的特點(diǎn)、優(yōu)勢及應(yīng)用場景,直接訪問簡單直接但安全性較低;Nginx增加中間層代理,解決跨域、負(fù)載均衡等問題,適合生產(chǎn)環(huán)境,建議小型項目直接訪問,大項目應(yīng)推薦使用Nginx以獲得更好的性能和安全性

1. 不使用Nginx(直接訪問)

前端(Vue) → 直接請求 → Spring Boot后端

特點(diǎn):

  • 簡單直接:開發(fā)階段方便調(diào)試
  • 端口 暴露:后端端口直接對外暴露(如8080)
  • 跨域問題:需要后端配置CORS解決跨域
  • 無負(fù)載均衡:只能連接單一后端實例
  • 靜態(tài)資源服務(wù):Spring Boot需要自己服務(wù)靜態(tài)資源(如配置WebMvc)
  • 安全性:缺少額外的安全層保護(hù)

2. 使用Nginx(反向代理)

前端(Vue) → Nginx → Spring Boot后端
	↑	 ↑
靜態(tài)資源		反向代理

主要區(qū)別和優(yōu)勢:

維度不使用Nginx使用Nginx
架構(gòu)前后端直接通信增加中間層代理
跨域處理需后端配置CORSNginx代理自動解決跨域
負(fù)載均衡不支持支持多實例負(fù)載均衡
靜態(tài)資源需單獨(dú)配置或CDNNginx高性能靜態(tài)服務(wù)
性能后端直接處理所有請求靜態(tài)資源由Nginx處理,減少后端壓力
安全性較低隱藏后端端口、防DDoS、限流等
SSL/HTTPS需Spring Boot配置Nginx統(tǒng)一管理SSL證書
部署靈活性靈活性低前后端分離更徹底

3. 典型應(yīng)用場景對比

場景A:開發(fā)環(huán)境(常不使用Nginx)

// vue.config.js
devServer: {
	proxy: {
		'/api': {
			target: 'http://localhost:8080', // 直接連Spring Boot
			changeOrigin: true
		}
	}
}

場景B:生產(chǎn)環(huán)境(推薦使用Nginx)

# nginx.conf
server {
	listen 80;
	server_name example.com;
	
	# 1. 服務(wù)Vue靜態(tài)文件
	location / {
		root /var/www/vue-app;
		index index.html;
		try_files $uri $uri/ /index.html; # 支持Vue Router history模式
	}
	
	# 2. 反向代理API請求
	location /api/ {
		proxy_pass http://backend-server:8080/;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
		# 跨域配置
		add_header Access-Control-Allow-Origin *;
		add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
		add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,Content-Type';
		
		# 緩存配置
		proxy_cache my_cache;
		proxy_cache_valid 200 302 10m;
	}
	
	# 3. 負(fù)載均衡配置
	upstream backend-server {
		server 192.168.1.101:8080 weight=3; # 權(quán)重負(fù)載
		server 192.168.1.102:8080 weight=2;
		server 192.168.1.103:8080 backup;# 備用服務(wù)器
	}
	
	# 4. 性能優(yōu)化
	gzip on;# 開啟壓縮
	gzip_types text/plain application/javascript application/json;
}

4. 具體差異示例

差異1:跨域處理

# Nginx解決跨域(無需修改后端代碼)
location /api/ {
	proxy_pass http://localhost:8080/api/;
	add_header Access-Control-Allow-Origin $http_origin always;
	add_header Access-Control-Allow-Credentials true always;
	add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,OPTIONS' always;
	
	# 處理OPTIONS預(yù)檢請求
	if ($request_method = 'OPTIONS') {
		return 204;
	}
}

差異2:靜態(tài)資源服務(wù)

# Nginx高效服務(wù)靜態(tài)資源(優(yōu)于Spring Boot)
location /static/ {
	root /var/www/vue-app;
	expires 30d;# 緩存30天
	access_log off;
	
	# 啟用gzip壓縮
	gzip_static on;
}

差異3:安全加固

# 安全配置(Nginx層面)
server {
	# 隱藏服務(wù)器信息
	server_tokens off;
	
	# 限制請求大小
	client_max_body_size 10m;
	
	# 限流
	limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
	
	location /api/ {
	limit_req zone=api burst=20 nodelay;
		proxy_pass http://backend:8080;
	}
}

5. 建議方案

開發(fā)環(huán)境:

  • 直接連接:Vue devServer代理到Spring Boot
  • 簡單快速,便于調(diào)試

生產(chǎn)環(huán)境(推薦使用Nginx):

  1. Nginx + Vue:服務(wù)靜態(tài)文件
  2. Nginx → Spring Boot集群:反向代理API請求

優(yōu)點(diǎn)

  • 前后端完全解耦
  • 高性能靜態(tài)資源服務(wù)
  • 負(fù)載均衡和高可用
  • 統(tǒng)一的安全策略
  • 易于水平擴(kuò)展

6. 性能對比數(shù)據(jù)

指標(biāo)直接連接Nginx代理
靜態(tài)資源QPS~1000~5000+
內(nèi)存占用較低額外占用(約10-50MB)
并發(fā)連接數(shù)受Spring Boot限制Nginx高性能處理
響應(yīng)時間直接增加約1-5ms延遲

總結(jié)建議

小型項目/原型階段:可不使用Nginx,簡化部署

中大型項目/生產(chǎn)環(huán)境:強(qiáng)烈推薦使用Nginx,獲得:

  1. 更好的性能(靜態(tài)資源服務(wù))
  2. 更高的安全性
  3. 更強(qiáng)的擴(kuò)展性(負(fù)載均衡)
  4. 更靈活的部署架構(gòu)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例

    配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例

    本文主要介紹了配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請求到外網(wǎng)的實現(xiàn)示例,通過nginx配置代理實現(xiàn)內(nèi)網(wǎng)對外網(wǎng)接口數(shù)據(jù)的獲取,涉及nginx安裝、配置SSL、日志設(shè)置和錯誤排查,感興趣的可以了解一下
    2024-10-10
  • 在Docker中實現(xiàn)Nginx平滑重啟的幾種方法

    在Docker中實現(xiàn)Nginx平滑重啟的幾種方法

    關(guān)于平滑重啟的意思,就是指已經(jīng)連接到nginx的請求將繼續(xù)使用舊的配置,待客戶端服務(wù)完成后,舊的工作進(jìn)程將關(guān)閉,下次請求將采用新的配置,本文給大家介紹了在Docker中實現(xiàn)Nginx平滑重啟的幾種方法,需要的朋友可以參考下
    2025-09-09
  • Ansible批量部署Nginx的示例代碼

    Ansible批量部署Nginx的示例代碼

    這篇文章主要介紹了Ansible批量部署Nginx的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • OpenResty是什么,OpenResty和Nginx的區(qū)別?

    OpenResty是什么,OpenResty和Nginx的區(qū)別?

    Nginx作為一款輕量級、高性能的Web服務(wù)器,傳統(tǒng)局限性也很明顯:靜態(tài)配置、邏輯擴(kuò)展依賴C模塊開發(fā),使得它在需要動態(tài)業(yè)務(wù)邏輯的場景中顯得捉襟見肘,<BR>而OpenResty的出現(xiàn),打破了這一僵局,它通過將Lua腳本深度集成到Nginx中,將“靜態(tài)代理服務(wù)器”升級為“動態(tài)應(yīng)用平臺”
    2025-04-04
  • nginx代理實現(xiàn)靜態(tài)資源訪問的示例代碼

    nginx代理實現(xiàn)靜態(tài)資源訪問的示例代碼

    本文主要介紹了nginx代理實現(xiàn)靜態(tài)資源訪問的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Nginx 如何配置強(qiáng)制 HTTP 跳轉(zhuǎn) HTTPS 并保留原始請求參數(shù)

    Nginx 如何配置強(qiáng)制 HTTP 跳轉(zhuǎn) HTTPS 并保留原始請求參

    這篇文章給大家介紹了Nginx 如何配置強(qiáng)制 HTTP 跳轉(zhuǎn) HTTPS 并保留原始請求參數(shù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-05-05
  • Nginx下修改WordPress固定鏈接導(dǎo)致無法訪問的問題解決

    Nginx下修改WordPress固定鏈接導(dǎo)致無法訪問的問題解決

    這篇文章主要介紹了Nginx下修改WordPress固定鏈接導(dǎo)致無法訪問的問題解決,同時作者也給出了官方關(guān)于修改固定鏈接的方法,需要的朋友可以參考下
    2015-07-07
  • nginx部署前端vue項目教程

    nginx部署前端vue項目教程

    要在Nginx上部署前端Vue項目,首先在Vue項目根目錄構(gòu)建,將構(gòu)建文件上傳至服務(wù)器,并在Nginx配置文件中配置publicPath為/,以確保靜態(tài)文件正確引用,接著編輯Nginx配置文件,設(shè)置相應(yīng)路徑和反向代理等配置,保存后重啟Nginx服務(wù)
    2025-09-09
  • Nginx部署Vue項目添加訪問后綴方式

    Nginx部署Vue項目添加訪問后綴方式

    文章介紹了如何根據(jù)需要為Vue項目配置不同的訪問路徑,并通過Nginx進(jìn)行相應(yīng)的配置,通過設(shè)置`vue.config.js`中的`publicPath`和`route`的`base`為`/app`,并將打包后的文件放入指定目錄,然后在Nginx配置中使用`alias`和`try_files`指令來處理路徑
    2025-01-01
  • Nginx?map?實現(xiàn)時間格式轉(zhuǎn)換的方法

    Nginx?map?實現(xiàn)時間格式轉(zhuǎn)換的方法

    最近我們需要把?Nginx?的日志接入到自研的日志采集平臺上,但是這個平臺只支持?JSON?格式,所以需要把?Nginx?日志格式改成?JSON?格式,這篇文章主要介紹了Nginx?map?實現(xiàn)時間格式轉(zhuǎn)換,需要的朋友可以參考下
    2023-09-09

最新評論

池州市| 漯河市| 日照市| 宜春市| 甘泉县| 江山市| 丹巴县| 吐鲁番市| 遵义市| 抚顺县| 建德市| 姚安县| 从化市| 会东县| 阿瓦提县| 芜湖市| 乾安县| 齐河县| 嘉祥县| 神木县| 英超| 沁源县| 西乡县| 新乡市| 桦甸市| 麻江县| 罗甸县| 喀喇沁旗| 新宾| 思茅市| 定安县| 永年县| 罗田县| 扎兰屯市| 兴业县| 饶河县| 高雄县| 石渠县| 托克托县| 荆州市| 马关县|