您好,登錄后才能下訂單哦!
這篇“如何部署前后端分離式nginx”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何部署前后端分離式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; }
跟單項目唯一的不同點(diǎn)在于,root和alias的區(qū)別,root指的是文件的絕對匹配路徑,而alias則是相對匹配。root可以再http、server、location中配置,而alias只能在location中配置。這我還加入的正則^~,當(dāng)匹配/a或者/b時,不管location的路徑是什么,資源的真實路徑一定是都是 alias 指定的路徑。這樣的我就能讓/a、/b擁有匹配的到路徑之后,擁有跳轉(zhuǎn)固定路徑,這在spa式的前端項目非常有用的,因為其實核心文件只有一個index.html文件(資源文件另說)。這樣我永遠(yuǎn)跳轉(zhuǎn)index.html就能保證瀏覽器手動刷新的時候,不會根據(jù)root路徑去查找服務(wù)器其他路徑的資源。然后設(shè)置spa的根路徑和 /b必須是匹配的。
為什么會有這種需求?前端是輕便的,我們?yōu)榱诉_(dá)到節(jié)約服務(wù)器與聚合同類型業(yè)務(wù)的時候,就會使用到這種機(jī)制。就像希望admin.xxxx.com/a => 運(yùn)營管理臺、admin.xxxx.com/b => erp管理臺一樣。所有admin這個域名下我們只要切出子路徑即可。簡單輕便。
請求轉(zhuǎn)發(fā)
location ^~ /api { proxy_pass http://api.xxx.com/; }
這里就特別簡單了,我通過正則匹配/api這個請求,通過proxy_pass屬性,將請求定向到。即可
修改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還是很強(qiáng)大的。
以上就是關(guān)于“如何部署前后端分離式nginx”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。