Nginx與前端開發

2021-09-02 22:29:15 字數 1927 閱讀 5267

「nginx是一款輕量級的http伺服器,採用事件驅動的非同步非阻塞處理方式框架,這讓其具有極好的io效能,時常用於服務端的反向**和負載均衡。」

​ 作為前端開發,即使沒用過nginx,但一定聽說過上面這句話。這句經典的話,基本構成了所有人對nginx的第一印象。 nginx發布於2023年,經過初期幾年的沉澱之後,迅速躥公升為「網紅」,成為了當年網際網路技術圈最火的詞彙和技術。然而經過多年的發展,到現在,當年的網紅早已「過氣」。因為如今基本上所有的大型**都搭建在nginx之上,nginx不再是乙個什麼新詞,而是網際網路**搭建的必選技術之一。看到這裡,「http伺服器」、「事件驅動」、「非同步非阻塞」以及nginx的網紅經歷,是不是讓前端童鞋們想到了nodejs?

​ 對於大部分前端童鞋,更傾向於用nodejs來搭建伺服器,進而實現一些需求,對nginx有天然的抗拒感。的確,nginx中的絕大部分功能,如果單純的使用node.js也可以滿足和實現。但實際上,nginx和node.js並不衝突,都有自己擅長的領域:

nginx更擅長於底層伺服器端資源的處理(靜態資源處理**、反向**,負載均衡等),node.js更擅長於上層具體業務邏輯的處理。兩者可以實現完美組合,助力前端開發

​ 什麼是反向**? 網際網路應用基本都基於cs基本結構,即client端和server端。**其實就是在client端和真正的server端之前增加一層提供特定服務的伺服器,即**伺服器。

為什麼要nginx反向**

1.安全及許可權: 使用反向**後,使用者端將無法直接通過請求訪問真正的內容伺服器,而必須首先通過nginx。可以通過在nginx層上將危險或者沒有許可權的請求內容過濾掉,從而保證了伺服器的安全。

2.負載均衡: 例如乙個**的內容被部署在若干臺伺服器上,可以把這些機子看成乙個集群,那麼nginx可以將接收到的客戶端請求「均勻地」分配到這個集群中所有的伺服器上(內部模組提供了多種負載均衡演算法),從而實現伺服器壓力的負載均衡

​ 此外,nginx還帶有健康檢查功能(伺服器心跳檢查),會定期輪詢向集群裡的所有伺服器傳送健康檢查請求,來檢查集群中是否有伺服器處於異常狀態,一旦發現某台伺服器異常,那麼在以後**進來的客戶端請求都不會被傳送到該伺服器上(直到後面的健康檢查發現該伺服器恢復正常),從而保證客戶端訪問的穩定性。

location /
​ 其實deny和allow是ngx_http_access_module模組(已內建)中的語法。採用的是從上到下匹配方式,匹配到就跳出不再繼續匹配。上述配置的意思就是,首先禁止192.168.1.100訪問,然後允許192.168.1.10-200 ip段內的訪問(排除192.168.1.100),同時允許10.110.50.16這個單獨ip的訪問,剩下未匹配到的全部禁止訪問。實際生產中,經常和ngx_http_geo_module模組(可以更好地管理ip位址表,已內建)配合使用。

#請求跨域,這裡約定**請求url path是以/apis/開頭

location ^

~/apis/

location / 

if ($mobile_request = '1')

} 複製**

client_max_body_size   1m;
因此需要修改nginx.conf配置檔案如下所示:

server
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
location /test

前端開發 nginx篇

mac上搭建nginx教程 通過homebrew 安裝nginxbrew install nginx 配置 新增配置檔案在 usr local etc nginx servers目錄下 一般都是修改 usr local etc nginx目錄下nginx.conf 檔案,後來發現nginx.conf...

前端開發 nginx番外篇

centos7下nginx開發使用 背景 阿里雲ecs centos7 安裝教程 centos7安裝nginx實戰 需要主意的如下 文中第四步 4.配置編譯引數命令 可以使用.configure help查詢詳細引數 如圖 執行。configure 啟動後檢視 4 檢視是否啟動 ps ef grep...

nginx解決前端開發跨域問題

1 首先你需要擁有一台nginx伺服器 在此不具體講nginx 2 在nginx.config裡面進行反向 的配置,具體 如下 前端開發環境配置 server 配置後端介面 location xbproject error page 500 502 503 504 50x.html location...