亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

前端必備的一些nginx知識點(diǎn)匯總

 更新時間:2023年03月18日 11:47:03   作者:客場消音器  
Nginx是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù),下面這篇文章主要給大家匯總介紹了關(guān)于前端必備的一些nginx知識點(diǎn),文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

最近在做一個后臺項目,需要加載一個大型的的文件,一開始這個文件大概有40M,算了下處在公司比較好的網(wǎng)絡(luò)環(huán)境下瀏覽器下載下來大概得12s左右,然后加載這個文件還得7s左右,這樣理想情況下呈現(xiàn)給用戶大概得20s左右,不管loading的動畫做的多么美麗用戶肯定接受不了。 上傳到OSS服務(wù)上發(fā)現(xiàn)不能自動緩存,后來只能當(dāng)做靜態(tài)資源丟到服務(wù)器上,發(fā)現(xiàn)還是緩存不了,這個時候想到了nginx可以用來配置緩存和壓縮,但是作為一個前端開發(fā)之前是沒有接觸過nginx的,更別說進(jìn)行復(fù)雜的配置了(雖然配置個緩存壓縮啥的不算復(fù)雜),但是惡補(bǔ)下nginx的知識刻不容緩了,于是這篇文章就誕生了。

nginx簡介

Nginx是一款輕量級、高性能的 Web 服務(wù)器 、反向代理服務(wù)器,它具有有很多非常優(yōu)越的特性:

反向代理

與反響代理相對的肯定是正向代理,那么我們就先從正向代理開始說明

  • 正向代理

正向代理服務(wù)器是一個位于客戶端和目標(biāo)服務(wù)器之間的服務(wù)器,為了從目標(biāo)服務(wù)器取得內(nèi)容,客戶端向代理服務(wù)器發(fā)送一個請求并指定目標(biāo),然后代理服務(wù)器向目標(biāo)服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。

總之,正向代理中目標(biāo)服務(wù)器并不知道訪問它的真實用戶是誰,因為和它交互的是代理服務(wù)器。

常見的??:比如我們訪問國外的YouTube、Facebook等網(wǎng)站,就是通過代理服務(wù)器實現(xiàn)的,這個就是正向代理的過程。

  • 反向代理

正向代理中目標(biāo)服務(wù)器不知道用戶是誰,反向代理中則相反,是用戶不知道目標(biāo)服務(wù)器是誰。

用戶將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,再返回給客戶端,這個過程中用戶并不知道真正的請求發(fā)送到哪臺服務(wù)器上了。

使用反向代理,目標(biāo)服務(wù)器可以對客戶端隱藏服務(wù)器的IP地址。

負(fù)載均衡

反向代理服務(wù)器可以做負(fù)載均衡,根據(jù)所有真實服務(wù)器的負(fù)載情況,將客戶端請求分發(fā)到不同的真實服務(wù)器上。也就是說哪個服務(wù)器沒那么忙,哪個服務(wù)器就來響應(yīng)請求。

動靜分離

在訪問服務(wù)端時,一般會請求一些靜態(tài)資源,如js、css、圖片等,這些資源可以在反向代理服務(wù)器中進(jìn)行緩存,減少服務(wù)器的壓力,而動態(tài)請求可以繼續(xù)請求服務(wù)器。

使用和配置

接下來就來看下怎么安裝并進(jìn)行一些常用的配置。

安裝

首先可以去買一臺服務(wù)器,我買的是騰訊云的,系統(tǒng)是CentOS,所以是自帶yum命令的,登錄服務(wù)器后直接執(zhí)行以下命令:

yum install nginx

安裝完成后,就可以啟動nginx服務(wù)了,直接運(yùn)行:

nginx # 直接會啟動nginx服務(wù)

然后在瀏覽器訪問服務(wù)器的IP,就會出現(xiàn)下面的頁面:

這就說明nginx服務(wù)已經(jīng)被啟動了。

常用命令

  • 啟動nginx服務(wù)的命令
[root@VM-0-14-centos ~]# nginx
  • 檢查配置的命令,一般用于在修改配置后檢查下配置是否合法
[root@VM-0-14-centos ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • 重啟命令,修改完配置后需要重啟nginx服務(wù)
[root@VM-0-14-centos ~]# nginx -s reload
  • 停止nginx服務(wù)
[root@VM-0-14-centos ~]# nginx -s stop

對于前端來說,掌握這幾個命令就夠夠的了

配置

nginx的默認(rèn)配置文件通常是/etc/nginx/nginx.conf,我們跳到/etc/nginx目錄中執(zhí)行cat nginx.conf可以查看配置文件的內(nèi)容,下面我copy了重要的部分先來分析:

user root;
?
...
?
http {
?
  ...
?
  server {
    listen       80 default_server;       # 默認(rèn)在80端口啟動nginx服務(wù)
    listen       [::]:80 default_server;
    server_name  _;                       # 綁定的域名
    root         /usr/share/nginx/html;   # 根目錄,會加載這個目錄下的html文件
?
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;  # 可以引入其他配置文件
?
    location / {                          # 訪問服務(wù)器跟路徑
    }
?
    error_page 404 /404.html;             # 訪問的時候路徑404
        location = /40x.html {            # 404時訪問的html
    }
?
    error_page 500 502 503 504 /50x.html; # 服務(wù)器內(nèi)部錯誤
        location = /50x.html {            # 5xx時訪問的html
    }
  }
}

上面的配置的意思是我們訪問服務(wù)的80端口時會自動加載/usr/share/nginx/html目錄下的html文件,所以我們通過IP訪問會返回我們之前看到的頁面,我們切換到/usr/share/nginx/html目錄下,修改其中的index.html如下:

<!DOCTYPE html>
<html>
    <head>
        <title>Hello nginx</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
        </style>
    </head>
?
    <body>
        <h1>hello nginx!</h1>
    </body>
</html>

修改完后執(zhí)行nginx -s reload重啟命令,然后刷新頁面,頁面就變成如下所示:

項目部署配置

這就是nginx最簡單的配置。但是我們在項目開發(fā)時一般會用vue或者react框架,開發(fā)完后打包再去部署到服務(wù)器上,這個時候nginx能幫什么忙呢?接下來,我就簡單的去講解下如何用nginx部署前端服務(wù)。

首先我們創(chuàng)建一個react項目或者vue項目,如何創(chuàng)建項目就不再說明了,我是用vite創(chuàng)建的vue3的項目。 創(chuàng)建好后直接npm run build進(jìn)行打包,打包好后運(yùn)行下面的命令:

scp -r ./dist root@你的IP:/root/www/website/

然后輸入密碼,就可以把打包的整個dist文件上傳到服務(wù)的/root/www/website/這個目錄下了。

服務(wù)器的對應(yīng)目錄如下:

注意:在真實的開發(fā)過程中部署項目肯定不是手動,一般會用一些ci工具,下次可以專門針對前端部署再寫一篇文章。

現(xiàn)在,我們就成功的將靜態(tài)資源部署到服務(wù)器上了,接下來就只需要修改nginx的配置就可以了,也就是修改/etc/nginx/nginx.conf這個文件的內(nèi)容,修改后文件如下(還是只展示重要部分內(nèi)容):

user root; # 這里一定是root,如果報403就是這里沒修改
?
...
?
http {
  
  ...
?
  server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;
?
    include /etc/nginx/default.d/*.conf;
?
    location / {
      root  /root/www/website/dist; # 訪問跟路徑時對應(yīng)訪問的目錄緩存我們上傳靜態(tài)資源文件的目錄
      index   index.html      index.htm; # 文件類型
    }
?
    error_page 404 /404.html;
      location = /40x.html {
    }
?
    error_page 500 502 503 504 /50x.html;
      location = /50x.html {
    }
  }
}

其實我們只需要在location /下面加上訪問的文件目錄路徑和文件類型就可以了,修改好后執(zhí)行nginx -s reload重啟,回到頁面刷新就會看到如下頁面:

這個是最簡單的前端項目部署的過程了。

緩存配置

前端經(jīng)常有一些圖片還有其他靜態(tài)資源文件基本上不會再被修改了,就比如說我做上一個項目的時候的那個大的文件,那這個時候就可以緩存到本地,防止下次請求再從服務(wù)器上拉取,這樣是很耗費(fèi)時間和服務(wù)器帶寬的,接下來我們就來看下如何使用nginx配置緩存。

server {
?
  ...
?
  location / {
    root  /root/www/website/dist;
    index   index.html      index.htm;
?
    location ~ .*.(?:jpg|jpeg|png|svg)$ { # 匹配靜態(tài)資源的文件后綴
      expires   7d; # 7天后過期
    }
  }
?
  ...
}

上面的配置是對一些圖片資源進(jìn)行的緩存配置,緩存時間為7天,修改好重啟后刷新頁面,找到關(guān)于圖片資源的請求,然后就會發(fā)現(xiàn)請求第二次的時候就會從本地緩存中獲取,并且響應(yīng)頭顯示緩存過期時間是7天后:

這是對圖片的緩存,其他資源文件也是同理。

跨域配置

跨域是開發(fā)過程中或者面試過程中經(jīng)常會碰到的問題,面試的時候一般會回答jsonp或者服務(wù)端加響應(yīng)頭等方式,今天我們看看nginx如何去配置跨域。下面就是常見的跨域配置:

server {
?
  ...
?
  add_header Access-Control-Allow-Origin *; # 表示允許所有域名域跨域調(diào)用
  add_header Access-Control-Allow-Methods *; # 表示允許所有請求方法跨域
  if ($request_method = OPTIONS) { # 檢查請求的類型是不是預(yù)檢命令
    return 200;
  }
?
  location / {
    root  /root/www/website/dist;
    index   index.html      index.htm;
?
  }
?
  ...
}

gzip壓縮配置

如果存在靜態(tài)資源過大,可能會導(dǎo)致服務(wù)端響應(yīng)過慢,盡管配置了緩存,但是第一次在獲取資源的情況下并沒有緩存,只能從服務(wù)器上獲取,這個時候就可以考慮開啟gzip壓縮,這樣可以節(jié)省服務(wù)器的帶寬,接下來就來看看如何配置gzip壓縮的。

server {
?
  ...
?
  # 開啟gzip壓縮,同理,關(guān)閉為off
  gzip on;
  # 壓縮的級別,一般取2-6,級別越高,壓縮的越小,但越耗費(fèi)服務(wù)器的cpu
  gzip_comp_level 6;
  # 超過1K的文件才進(jìn)行壓縮
  gzip_min_length 1k;
  # 文件類型
  gzip_types image/png image/jpeg image/gif image/svg+xml;
  # 在響應(yīng)頭中添加 Vary
  gzip_vary on;
?
  location / {
    root  /root/www/website/dist;
    index   index.html      index.htm;
  }
?
  ...
}

修改好后重啟,打開頁面,開啟前這個logo的svg文件大小為1.9k:

開啟gzip后,大小變?yōu)?.2k:

并且響應(yīng)頭上也有g(shù)zip的標(biāo)識了:

總結(jié)

以上就是對于nginx的一些常用配置進(jìn)行的介紹,作為一個前端開發(fā),雖然很多時候不需要自己進(jìn)行nginx配置,但是掌握了這些也可以讓你在需要的時候不那么慌張,所以趕緊學(xué)起來吧!

到此這篇關(guān)于前端必備的一些nginx知識點(diǎn)匯總的文章就介紹到這了,更多相關(guān)前端必備nginx知識點(diǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 服務(wù)器使用Nginx部署Vue項目

    服務(wù)器使用Nginx部署Vue項目

    本文主要介紹了服務(wù)器使用Nginx部署Vue項目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Nginx方向代理wss或ws的實現(xiàn)示例

    Nginx方向代理wss或ws的實現(xiàn)示例

    本文主要介紹了Nginx方向代理wss或ws的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 一個Nginx實現(xiàn)部署多個不同的項目方式

    一個Nginx實現(xiàn)部署多個不同的項目方式

    這篇文章主要介紹了一個Nginx實現(xiàn)部署多個不同的項目方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 基于nginx反向代理獲取用戶真實Ip地址詳解

    基于nginx反向代理獲取用戶真實Ip地址詳解

    我們訪問互聯(lián)網(wǎng)上的服務(wù)時,大多數(shù)時客戶端并不是直接訪問到服務(wù)端的,而是客戶端首先請求到反向代理,反向代理再轉(zhuǎn)發(fā)到服務(wù)端實現(xiàn)服務(wù)訪問,這篇文章主要給大家介紹了關(guān)于如何基于nginx反向代理獲取用戶真實Ip地址的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 阿里云Linux系統(tǒng)Nginx配置多個域名的方法詳解

    阿里云Linux系統(tǒng)Nginx配置多個域名的方法詳解

    本篇文章主要介紹了阿里云Linux系統(tǒng)Nginx配置多個域名的方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 一句簡單命令重啟nginx

    一句簡單命令重啟nginx

    最近我的多個VPS經(jīng)常出現(xiàn)502錯誤,經(jīng)常需要重啟nginx,但網(wǎng)上的很多教程都需要繁瑣的啟動腳本,遠(yuǎn)不如apache的重啟命令那么簡單。
    2010-03-03
  • 詳解Nginx如何處理WebSocket連接

    詳解Nginx如何處理WebSocket連接

    在當(dāng)今互聯(lián)網(wǎng)的世界中,實時通信變得越來越重要,WebSocket 作為一種實現(xiàn)實時雙向通信的技術(shù),正被廣泛應(yīng)用于各種場景,而 Nginx 作為一款高性能的 Web 服務(wù)器和反向代理服務(wù)器,在處理 WebSocket 連接方面也有著出色的表現(xiàn),本文介紹了Nginx如何處理WebSocket連接
    2024-07-07
  • nginx centos 服務(wù)開機(jī)啟動設(shè)置實例詳解

    nginx centos 服務(wù)開機(jī)啟動設(shè)置實例詳解

    這篇文章主要介紹了nginx centos 服務(wù)開機(jī)啟動設(shè)置實例詳解的相關(guān)資料,這里對服務(wù)開機(jī)啟動做了詳細(xì)的步驟介紹,需要的朋友可以參考下
    2016-11-11
  • windows下安裝nginx的方法(圖文)

    windows下安裝nginx的方法(圖文)

    這篇文章主要介紹了windows下安裝nginx的方法(圖文),需要的朋友可以參考下
    2016-09-09
  • nginx配置完rewrite瀏覽器提示將您重定向的次數(shù)過多的解決方法

    nginx配置完rewrite瀏覽器提示將您重定向的次數(shù)過多的解決方法

    本文主要介紹了nginx配置完rewrite瀏覽器提示將您重定向的次數(shù)過多的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評論