濮阳杆衣贸易有限公司

主頁 > 知識庫 > 部署前后端分離式nginx配置的完整步驟

部署前后端分離式nginx配置的完整步驟

熱門標(biāo)簽:金融行業(yè)外呼線路 高德地圖標(biāo)注無營業(yè)執(zhí)照 智能電話機器人線路 廣州電銷機器人系統(tǒng)圖 江蘇電銷外呼防封系統(tǒng)是什么 賀州市地圖標(biāo)注app 百度地圖標(biāo)注要不要錢 東莞人工智能電銷機器人供應(yīng)商 長沙開福怎么申請400電話

前言

老生常談了,這里談?wù)勎业睦斫獾那昂蠖朔蛛x,簡單的分離無非是將原來mvc的view層剝離出來,獨立一個成為Servlet服務(wù),Servlet之間依靠http連通。這里的view Servlet容器可以是任意一種服務(wù)端服務(wù),Tomcat、Apache、Nginx、IIS,都可以。這里以常用的Nginx為例子做簡單的介紹。

需求分析

先來一波需求分析。

  • 單項目
    • 單項目指的是一臺服務(wù)器部署一個前端服務(wù),使www.xxx.com => index.html的單一指向。
  • 多項目
    • 多項目指的是一臺服務(wù)器部署多個前端服務(wù),使www.xxx.com/a => a.html,www.xxx.com/b => b.html等多指向。
  • 請求代理。
  • cookie domain重寫。
  • cookie path 重寫。

提示:這里做好寫conf.d/*.conf,這樣配置可以分離處理。

公共配置

server{
 listen 80; # 配置端口
 server_name _; # 配置域名
 charset utf-8; # 編碼
 access_log /xxx/log/nginx_access.log main; # 成功日志
 error_log /xxx/log/nginx_error.log error; # 錯誤日志
 index index.html; # 查找文件順序
 set $root /xxx/nginx/; # 變量設(shè)置,設(shè)置公共路徑
 
 # 其余l(xiāng)ocation
}

請手動去/xxx/log/nginx_access.log和/xxx/log/nginx_error.log下新建對應(yīng)文件。可能會執(zhí)行nginx reload第一次執(zhí)行時會報錯。

set的$root路徑為絕對路徑,access_log和error_log同樣都是絕對路徑。

單項目配置

目錄結(jié)構(gòu)

nginx
|----- index.html
|----- user.html

location配置

location / {
	root $root;
}

好了最簡單的基于根路徑配置就這樣好了,這里無非是通過location配置一條路徑,然后指向到$root文件夾下的index.html這個文件下。

多項目配置

目錄結(jié)構(gòu)

nginx
|----- a
    |----- index.html
|----- b
    |----- index.html

多條location配置

location ^~ /a {
  alias $root/a;
}

location ^~ /b {
  alias $root/b;
}

location / {
  root $root;
}

跟單項目唯一的不同點在于,root和alias的區(qū)別,root指的是文件的絕對匹配路徑,而alias則是相對匹配。root可以再http、server、location中配置,而alias只能在location中配置。這我還加入的正則^~,當(dāng)匹配/a或者/b時,不管location的路徑是什么,資源的真實路徑一定是都是 alias 指定的路徑。這樣的我就能讓/a、/b擁有匹配的到路徑之后,擁有跳轉(zhuǎn)固定路徑,這在spa式的前端項目非常有用的,因為其實核心文件只有一個index.html文件(資源文件另說)。這樣我永遠跳轉(zhuǎn)index.html就能保證瀏覽器手動刷新的時候,不會根據(jù)root路徑去查找服務(wù)器其他路徑的資源。然后設(shè)置spa的根路徑和 /b必須是匹配的。

為什么會有這種需求?前端是輕便的,我們?yōu)榱诉_到節(jié)約服務(wù)器與聚合同類型業(yè)務(wù)的時候,就會使用到這種機制。就像希望admin.xxxx.com/a => 運營管理臺、admin.xxxx.com/b => erp管理臺一樣。所有admin這個域名下我們只要切出子路徑即可。簡單輕便。

請求轉(zhuǎn)發(fā)

location ^~ /api {
  proxy_pass http://api.xxx.com/;
}

這里就特別簡單了,我通過正則匹配/api這個請求,通過proxy_pass屬性,將請求定向到http://api.xxx.com。即可

修改cookie domain

有時候處于安全考慮,我們會設(shè)置一定的cookie的domain屬性這是對于nginx轉(zhuǎn)發(fā)來說就很不友好了。當(dāng)然也是有解決手段的,也很簡單。

location {
  proxy_cookie_domain <本域的domain> <想修改的domain>;
}

修改cookie path

當(dāng)我們轉(zhuǎn)發(fā)回api接口時,有時候api域名拿不到cookie,除了domain還有cookie path的可能性。當(dāng)然解決方案也很簡單

location {
  proxy_cookie_path <本域的路徑> <想修改的路徑>;
}

后續(xù)優(yōu)化

這只是nginx配置最簡單的一個例子,還有,開啟gzip、緩存設(shè)置、合并資源請求的插件、設(shè)置50x,40x頁面、判斷移動端,pc端跳轉(zhuǎn)等配置,nginx還是很強大的。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

標(biāo)簽:滄州 張家界 松原 玉樹 永州 北京 廊坊 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《部署前后端分離式nginx配置的完整步驟》,本文關(guān)鍵詞  部署,前,后端,分離,式,nginx,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《部署前后端分離式nginx配置的完整步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于部署前后端分離式nginx配置的完整步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    大宁县| 屏山县| 平和县| 报价| 满洲里市| 彭泽县| 临泉县| 福州市| 揭西县| 昌平区| 米易县| 阿拉善右旗| 嵊州市| 黄石市| 泸定县| 齐河县| 依兰县| 湖南省| 曲松县| 扬中市| 阳东县| 台北县| 枣庄市| 汨罗市| 南郑县| 松桃| 陇西县| 凤翔县| 中江县| 三河市| 亚东县| 临洮县| 富锦市| 平乡县| 吉木乃县| 剑阁县| 鄂托克前旗| 滦平县| 灵丘县| 徐水县| 义乌市|