欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端nginx部署詳細(xì)圖文教程

 更新時間:2024年03月18日 09:37:27   作者:serein6  
在前端開發(fā)過程中經(jīng)常是需要把前端靜態(tài)資源放到服務(wù)器中看效果,這時經(jīng)常用到nginx來配置,下面這篇文章主要給大家介紹了關(guān)于前端nginx部署的相關(guān)資料,需要的朋友可以參考下

一、nginx是什么

nginx官方介紹:

“Nginx是一款輕量級的HTTP服務(wù)器,采用事件驅(qū)動的異步非阻塞處理方式框架,這讓其具有極好的IO性能,時常用于服務(wù)端的反向代理和負(fù)載均衡。”

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

  • 支持海量高并發(fā):采用IO多路復(fù)用epoll。官方測試Nginx能夠支持5萬并發(fā)鏈接,實(shí)際生產(chǎn)環(huán)境中可以支撐2-4萬并發(fā)連接數(shù)。
  • 內(nèi)存消耗少
  • 可商業(yè)化
  • 配置文件簡單 除了這些優(yōu)點(diǎn)還有很多,比如反向代理功能,灰度發(fā)布,負(fù)載均衡功能等

二、安裝

  • linux 如果是centos大家也可以直接用yum安裝也是很方便的
  • window
  • 通過docker安裝(推薦)。

三、配置文件

cd /conf/nginx				進(jìn)入配置文件目錄
vi nginx.conf				配置文件
docker logs 鏡像名			查看錯誤log
docker restart 鏡像名		配置后重啟 

1. 配置文件的結(jié)構(gòu)介紹

為了讓大家有個簡單的輪廓,這里先對配置文件做一個簡單的描述:

worker_processes  1;                			# worker進(jìn)程的數(shù)量
events {                              			# 事件區(qū)塊開始
    worker_connections  1024;          		# 每個worker進(jìn)程支持的最大連接數(shù)
}                               			# 事件區(qū)塊結(jié)束
http {                           			# HTTP區(qū)塊開始
    include       mime.types;         			# Nginx支持的媒體類型庫文件
    default_type  application/octet-stream;            # 默認(rèn)的媒體類型
    sendfile        on;       				# 開啟高效傳輸模式
    keepalive_timeout  65;       			# 連接超時
    server {            		                # 第一個Server區(qū)塊開始,表示一個獨(dú)立的虛擬主機(jī)站點(diǎn)
        listen       80;      			        # 提供服務(wù)的端口,默認(rèn)80
        server_name  localhost;    			# 提供服務(wù)的域名主機(jī)名
        location / {            	        	# 第一個location區(qū)塊開始
            root   html;       			# 站點(diǎn)的根目錄,相當(dāng)于Nginx的安裝目錄
            index  index.html index.htm;       	# 默認(rèn)的首頁文件,多個用空格分開
        }          				        # 第一個location區(qū)塊結(jié)果
        error_page   500502503504  /50x.html;          # 出現(xiàn)對應(yīng)的http狀態(tài)碼時,使用50x.html回應(yīng)客戶
        location = /50x.html {          	        # location區(qū)塊開始,訪問50x.html
            root   html;      		      	        # 指定對應(yīng)的站點(diǎn)目錄為html
        }
    }  
    ......

2.location匹配

    #優(yōu)先級1,精確匹配,根路徑
    location =/ {
        return 400;
    }
 
    #優(yōu)先級2,以某個字符串開頭,以av開頭的,優(yōu)先匹配這里,區(qū)分大小寫
    location ^~ /av {
       root /data/av/;
    }
 
    #優(yōu)先級3,區(qū)分大小寫的正則匹配,匹配/media*****路徑
    location ~ /media {
          alias /data/static/;
    }
 
    #優(yōu)先級4 ,不區(qū)分大小寫的正則匹配,所有的****.jpg|gif|png 都走這里
    location ~* .*\.(jpg|gif|png|js|css)$ {
       root  /data/av/;
    }
 
    #優(yōu)先7,通用匹配
    location / {
        return 403;
    }

四、nginx反向代理

1.正向代理

正向代理,“它代理的是客戶端”,是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的設(shè)置才能使用正向代理 正向代理的用途:

  • 訪問原來無法訪問的資源,如Google
  • 可以做緩存,加速訪問資源
  • 對客戶端訪問授權(quán),上網(wǎng)進(jìn)行認(rèn)證
  • 代理可以記錄用戶訪問記錄(上網(wǎng)行為管理),對外隱藏用戶信息

2.反向代理

反向代理,“它代理的是服務(wù)端”,主要用于服務(wù)器集群分布式部署的情況下,反向代理隱藏了服務(wù)器的信息 反向代理的作用:

  • 保證內(nèi)網(wǎng)的安全,通常將反向代理作為公網(wǎng)訪問地址,Web服務(wù)器是內(nèi)網(wǎng)
  • 負(fù)載均衡,通過反向代理服務(wù)器來優(yōu)化網(wǎng)站的負(fù)載

3.負(fù)載均衡

服務(wù)器接收不同客戶端發(fā)送的、Nginx反向代理服務(wù)器接收到的請求數(shù)量,就是我們說的負(fù)載量。 這些請求數(shù)量按照一定的規(guī)則進(jìn)行分發(fā)到不同的服務(wù)器處理的規(guī)則,就是一種均衡規(guī)則。 所以,將服務(wù)器接收到的請求按照規(guī)則分發(fā)的過程,稱為負(fù)載均衡
負(fù)載均衡也分硬件負(fù)載均衡和軟件負(fù)載均衡兩種,我們來講的是軟件負(fù)載均衡,關(guān)于硬件負(fù)載均衡的有興趣的靚仔可以去了解下 負(fù)載均衡的算法:

  • 輪詢(默認(rèn)、加權(quán)輪詢、ip_hash)
  • 插件(fair、url_hash),url_hash和ip_hash大同小異,一個基于ip一個基于url,就不過多介紹了

默認(rèn)輪詢

每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端某個服務(wù)器宕機(jī),能自動剔除故障系統(tǒng)。

# constPolling 作為存放負(fù)載均衡的變量
upstream constPolling {
    server localhost:10001; 
    server localhost:10002;
}
server {
    listen 10000;
    server_name localhost;
    location / {
    proxy_pass http://constPolling; #在代理的時候接入constPolling
    proxy_redirect default;
    }
}

加權(quán)輪詢

通過設(shè)置weight,值越大分配率越大 到的訪問概率越高,主要用于后端每臺服務(wù)器性能不均衡的情況下。其次是為在主從的情況下設(shè)置不同的權(quán)值,達(dá)到合理有效的地利用主機(jī)資源。

# constPolling 作為存放負(fù)載均衡的變量
upstream constPolling {
    server localhost:10001 weight=1; 
    server localhost:10002 weight=2;
}
server {
    listen 10000;
    server_name localhost;
    location / {
    proxy_pass http://constPolling; #在代理的時候接入constPolling
    proxy_redirect default;
    }
}

權(quán)重越大,被訪問的概率越大,比如上面就是33.33%和百分66.66%的訪問概率 訪問的效果:
localhost:10001、localhost:10002、localhost:10002、localhost:10001、localhost:10002、localhost:10002

ip_hash
每個請求都根據(jù)訪問ip的hash結(jié)果分配,經(jīng)過這樣的處理,每個訪客固定訪問一個后端服務(wù),如下配置(ip_hash可以和weight配合使用),并且可以有效解決動態(tài)網(wǎng)頁存在的session共享問題

upstream constPolling {
       ip_hash; 
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

fair

個人比較喜歡用的一種負(fù)載均衡算法,fair算法可以根據(jù)頁面大小和加載時間長短智能地進(jìn)行負(fù)載均衡,響應(yīng)時間短的優(yōu)先分配。

安裝upstream_fair模塊 附上fair安裝教程
哪個服務(wù)器的響應(yīng)速度快,就將請求分配到那個服務(wù)器上

upstream constPolling { 
 server    localhost:10001;
 server    localhost:10002;
 fair; 
} 

五、nginx錯誤頁面配置、開啟Gzip壓縮配置

1.錯誤頁配置

當(dāng)我們訪問的地址不存在的時候,我們可以根據(jù)http狀態(tài)碼來做對應(yīng)的處理,我們以404為例

2.Gzip壓縮

Gzip是網(wǎng)頁的一種網(wǎng)頁壓縮技術(shù),經(jīng)過gzip壓縮后,頁面大小可以變?yōu)樵瓉淼?0%甚至更小。更小的網(wǎng)頁會讓用戶瀏覽的體驗更好,速度更快。gzip網(wǎng)頁壓縮的實(shí)現(xiàn)需要瀏覽器和服務(wù)器的支持

gzip是需要服務(wù)器和瀏覽器同時支持的。當(dāng)瀏覽器支持gzip壓縮時,會在請求消息中包含Accept-Encoding:gzip,這樣Nginx就會向瀏覽器發(fā)送聽過gzip后的內(nèi)容,同時在相應(yīng)信息頭中加入Content-Encoding:gzip,聲明這是gzip后的內(nèi)容,告知瀏覽器要先解壓后才能解析輸出。 如果項目是在ie或者一些兼容性比較低瀏覽器上運(yùn)行的,需要去查閱確定是否瀏覽器支持gzip

server {
    listen 12089;
    index index.php index.html;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/gzip;
    # 開啟gzip壓縮
    gzip on;
    # http請求版本
    gzip_http_version 1.0;
    # 設(shè)置什么類型的文件需要壓縮
    gzip_types text/css text/javascript application/javascript image/png image/jpeg image/gif;
    location / {
    index index.html index.htm index.php;
    autoindex off;
    }
}

六、nginx綜合使用場景

  • 同一個域名通過不同目錄指定不同項目目錄
    在開發(fā)過程中,有一種場景,比如有項目有多個子系統(tǒng)需要通過同一個域名通過不同目錄去訪問 在A/B Test 灰度發(fā)布等場景也會用上
    比如:
    訪問 a.com/a/*** 訪問的是a系統(tǒng)
    訪問 a.com/b/*** 訪問的是b系統(tǒng)

  • 自動適配PC/移動端頁面

  • 限制只能通過谷歌瀏覽器訪問

  • 前端單頁面應(yīng)用刷新404問題

七、常用全局變量

變量含義
$args這個變量等于請求行中的參數(shù),同$query_string
$content length請求頭中的Content-length字段。
$content_type請求頭中的Content-Type字段。
$document_root當(dāng)前請求在root指令中指定的值。
$host請求主機(jī)頭字段,否則為服務(wù)器名稱。
$http_user_agent客戶端agent信息
$http_cookie客戶端cookie信息
$limit_rate這個變量可以限制連接速率。
$request_method客戶端請求的動作,通常為GET或POST。
$remote_addr客戶端的IP地址。
$remote_port客戶端的端口。
$remote_user已經(jīng)經(jīng)過Auth Basic Module驗證的用戶名。
$request_filename當(dāng)前請求的文件路徑,由root或alias指令與URI請求生成。
$schemeHTTP方法(如http,https)。
$server_protocol請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
$server_addr服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值。
$server_name服務(wù)器名稱。
$server_port請求到達(dá)服務(wù)器的端口號。
$request_uri包含請求參數(shù)的原始URI,不包含主機(jī)名,如”/foo/bar.php?arg=baz”。
$uri不帶請求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如”/foo/bar.html”。
$document_uri與$uri相同。

總結(jié) 

到此這篇關(guān)于前端ngnix部署的文章就介紹到這了,更多相關(guān)前端ngnix部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx設(shè)置HttpOnly Secure SameSite參數(shù)解決Cookie信息丟失

    Nginx設(shè)置HttpOnly Secure SameSite參數(shù)解決Cookie信息丟失

    本文主要介紹了Nginx中Cookie缺少SameSite屬性的問題,并詳細(xì)解釋了HttpOnly、Secure和SameSite屬性的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 詳解Nginx中的Rewrite的重定向配置與實(shí)踐

    詳解Nginx中的Rewrite的重定向配置與實(shí)踐

    這篇文章主要介紹了詳解Nginx中的Rewrite的重定向配置與實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器

    利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器

    本文主要介紹了利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 實(shí)現(xiàn)Nginx中使用PHP-FPM時記錄PHP錯誤日志的配置方法

    實(shí)現(xiàn)Nginx中使用PHP-FPM時記錄PHP錯誤日志的配置方法

    最近在本地搭建的LNMP的開發(fā)環(huán)境。為了開發(fā)的時候不影響前端的正常開發(fā)就屏蔽的PHP里面php.ini中的一些錯誤提示。但是這樣一來,就影響到了后端開發(fā)的一些問題比如不能及時調(diào)試開發(fā)中的一些問題
    2014-05-05
  • nginx搭建NFS服務(wù)器的方法步驟

    nginx搭建NFS服務(wù)器的方法步驟

    本文主要介紹了nginx搭建NFS服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Nginx配置四層、七層網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)的方法示例

    Nginx配置四層、七層網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)的方法示例

    nginx作為透明代理可以充分利用其高性能和靈活性來實(shí)現(xiàn)網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)和處理,本文主要介紹了Nginx配置四層、七層網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)的方法示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 排查服務(wù)器異常流量教程詳解

    排查服務(wù)器異常流量教程詳解

    這篇文章主要為大家介紹了排查服務(wù)器異常流量教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 一文帶你搞懂什么是Nginx服務(wù)器

    一文帶你搞懂什么是Nginx服務(wù)器

    這篇文章主要介紹了一文帶你搞懂什么是Nginx,Nginx?(engine?x)?是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了iMAP/POP3/SMTP服務(wù),需要的朋友可以參考下
    2023-04-04
  • Nginx日志實(shí)現(xiàn)訪問異常報警詳解

    Nginx日志實(shí)現(xiàn)訪問異常報警詳解

    Nginx把遇到的不同級別的問題信息寫到錯誤日志。error_log 指令配置記錄到特定的文件,stderr,或者syslog,配置寫到日志的最低級別信息。下面這篇文章主要介紹了利用Nginx日志實(shí)現(xiàn)訪問異常報警的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • 生產(chǎn)環(huán)境之Nginx高可用方案實(shí)現(xiàn)過程解析

    生產(chǎn)環(huán)境之Nginx高可用方案實(shí)現(xiàn)過程解析

    這篇文章主要介紹了生產(chǎn)環(huán)境之Nginx高可用方案實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論