前端運(yùn)維-nginx必備

nginx簡(jiǎn)介

Nginx是一款是由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā)高性能的 Web和 反向代理 服務(wù)器欢唾,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器崔挖。在高連接并發(fā)的情況下炫刷,Nginx是Apache服務(wù)器不錯(cuò)的替代品。

  • nginx的優(yōu)勢(shì)

    • 高并發(fā)高性能
    • 可擴(kuò)展性好,跨平臺(tái) - 模塊拓展
    • 高可靠性 - 宕機(jī)概率很小
    • 熱部署
    • 開源許可
    • 等等
  • nginx 的最重要的幾個(gè)使用場(chǎng)景:

  1. 靜態(tài)資源服務(wù)胁出,通過本地文件系統(tǒng)提供服務(wù)沟启;
  2. 反向代理服務(wù)忆家,延伸出包括緩存、負(fù)載均衡等德迹;
  3. api接口服務(wù)

nginxnode.js 的很多理念類似芽卿,HTTP服務(wù)器、事件驅(qū)動(dòng)胳搞、異步非阻塞等卸例。nginx 擅長于底層服務(wù)器端資源的處理(靜態(tài)資源處理轉(zhuǎn)發(fā)、反向代理流酬,負(fù)載均衡等)币厕,總之目前形式,在服務(wù)器上應(yīng)用非常廣泛

nginx架構(gòu)之工作模式

    1. nginx啟動(dòng)后芽腾,有一個(gè)master進(jìn)程和多個(gè)相互獨(dú)立的worker進(jìn)程
    1. 每個(gè)worker進(jìn)程都有可能處理request連接
    1. master進(jìn)程可以監(jiān)控worker進(jìn)程的運(yùn)行狀態(tài)旦装,當(dāng)worker進(jìn)程異常退出,會(huì)自動(dòng)啟動(dòng)新的worker進(jìn)程
微信圖片_20221012101710.jpg
  • worker進(jìn)程數(shù)摊滔,一般會(huì)設(shè)置成機(jī)器cpu核數(shù)阴绢。因?yàn)楦嗟?code>worker數(shù),只會(huì)導(dǎo)致進(jìn)程相互競(jìng)爭(zhēng)CPU艰躺,從而帶來不必要的上下文切換
  • 使用多進(jìn)程模式呻袭,不僅能提高并發(fā)率,而且進(jìn)程之間相互獨(dú)立腺兴,一個(gè)worker進(jìn)程掛了不影響其它woker進(jìn)程的工作
  • CPU親和左电,把CPU內(nèi)核和nginxworker進(jìn)程綁定在一起,讓每個(gè)worker進(jìn)程固定在一個(gè)CPU上執(zhí)行页响,從而減少CPU的切換并提高緩存命中率提高性能

nginx的安裝

注意不同的linux的操作系統(tǒng)安裝命令不同篓足,以下全部在centos7.x環(huán)境運(yùn)行

安裝依賴
yum install -y gcc gcc-c++ autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel
添加安裝源

創(chuàng)建nginx.repo文件

vi /etc/yum.repos.d/nginx.repo

添加如下內(nèi)容

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0 
enabled=1
安裝nginx
yum install -y nginx

也有其他方式比如安裝包直接安裝,docker鏡像安裝...

  • nginx -v 查看版本號(hào)
  • nginx -V 查看安裝nginx配置的參數(shù)闰蚕。查看可執(zhí)行文件栈拖,配置文件,日志文件没陡,第三方模塊文件路徑
  • nginx -t 檢查配置是否正確
  • rpm -ql nginx查看nginx安裝文件的詳細(xì)路徑

啟動(dòng)/關(guān)閉命令

  • 啟動(dòng)systemctl start nginx.service
  • 重新加載配置 nginx -s reload或systemctl reload nginx.service
  • 停止systemctl stop nginx.service或nginx -s stop
  • 重啟systemctl restart nginx.service或nginx -s reopen
  • 開啟自啟systemctl enabled nginx.service
  • 關(guān)閉開機(jī)自啟systemctl disabled nginx.service

nginx模塊介紹

nginx的所有功能都是以模塊的形式累加形成涩哟,模塊也非常多索赏。這包括核心模塊和功能模塊,針對(duì)不同的應(yīng)用場(chǎng)景贴彼,并非所有的功能模塊都要被用到潜腻。模塊可參考如下3個(gè)網(wǎng)站

官方文檔
官方文檔翻譯版
Nginx中文參考手冊(cè),教程

nginx處理請(qǐng)求的流程

  • 客戶端請(qǐng)求
  • 讀取http請(qǐng)求的請(qǐng)求行,請(qǐng)求頭锻弓,請(qǐng)求體
  • 根據(jù)域名確認(rèn)使用哪個(gè)server配置
  • server_rewriteserver內(nèi)部的重寫)
  • 匹配location
  • rewritelocation內(nèi)部的重寫)
  • 訪問控制(每個(gè)ip每秒的并發(fā)數(shù))
  • 生成內(nèi)容(return , 硬盤砾赔, 反向代理)
  • 響應(yīng)過濾(gzip sub_filter
  • 打印日志(錯(cuò)誤和訪問日志)
  • 返回給客戶端

nginx配置解讀

內(nèi)置變量
  • $http_host 請(qǐng)求的主機(jī)名稱
  • $requet_uri 請(qǐng)求的url地址
  • $request_method 請(qǐng)求的http方法
  • $request http的請(qǐng)求行
  • $remote_addr 客戶端地址
  • $remote_user 客戶端名稱
  • $http_referer
  • $http_user_agent
  • $http_x_forwarded_for 轉(zhuǎn)發(fā)客戶端請(qǐng)求頭的ip地址
  • $proxy_add_x_forwarded_for 通過(proxy_set_header X_Forwarded_For: $proxy_add_x_forwarded_for配置透?jìng)骺蛻舳撕洗?code>ip)
  • $arg_[參數(shù)名稱] http請(qǐng)求參數(shù)名稱
  • $http_[HEADER] http的請(qǐng)求頭 如:$http_referer $http_user_agent
  • $send_http_[HEADER] http的響應(yīng)頭 如:$send_http_cookie
核心配置示例

整體上的配置塊如下所示

main {
  ...
  http {
    upstream { ... }
    server {
      if() {}
      location { ... }
    }
  }
}

更詳細(xì)的核心配置如下

cat /etc/nginx查看nginx配置如下


user  root; # 用于配置worker進(jìn)程的用戶和用戶組(如果指定的用戶不存在,則報(bào)錯(cuò))
worker_processes  auto; # 配置 worker進(jìn)程的個(gè)數(shù)青灼,建議和CPU核數(shù)一樣
error_log  /var/log/nginx/error.log notice;  # 配置錯(cuò)誤日志存放路徑 [日志級(jí)別]
pid        /var/run/nginx.pid; # 配置master進(jìn)程的進(jìn)程號(hào)和進(jìn)程號(hào)ID的文件路徑暴心,位于全局塊
events {
    worker_connections  1024; # 每個(gè)worker進(jìn)程允許最大的連接數(shù)
}
http {
    charset utf-8;
    include       /etc/nginx/mime.types; # 設(shè)定mime類型,類型由mime.types文件定義
    default_type  application/octet-stream; # 默認(rèn)的mime類型杂拨,如果mime.types文件找不到使用默認(rèn)的文件類型
    # 日志格式(自定義輸出內(nèi)容) 和 日志的級(jí)別
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'; 
    access_log  /var/log/nginx/access.log  main; # 訪問日志路徑
    
    # 下方3個(gè)建議同時(shí)開啟专普,靜態(tài)資源服務(wù)器應(yīng)用起到優(yōu)化的作用
    sendfile        on; # 提高處理靜態(tài)資源的性能,系統(tǒng)讀取的文件數(shù)據(jù)直接發(fā)送給網(wǎng)絡(luò)不再經(jīng)過ng弹沽。如果配置反向代理不起作用
    #tcp_nopush     on; # 減少網(wǎng)絡(luò)報(bào)文段的數(shù)量檀夹,可以在達(dá)到一定的數(shù)據(jù)后一起發(fā)送。僅在使用sendfile的時(shí)候使用
    tcp_nodelay     on; # 在keep-alive開啟的情況生效策橘,來提高網(wǎng)絡(luò)包傳輸?shù)?實(shí)時(shí)性'和tcp_nopush的作用相反
    
    keepalive_timeout  65; # 配置 長連接超時(shí)時(shí)間
    #keepalive_requests 120; # 配置 一個(gè)長連接 可以處理的請(qǐng)求的個(gè)數(shù)炸渡,超過這個(gè)個(gè)數(shù)就會(huì)斷開該連接
    
    #gzip  on; # 是否開啟gzip壓縮
    #gizp_comp_level 6; # 壓縮級(jí)別
    #gzip_min_length 1k; # 內(nèi)容超過1k才參與gzip
    #gzip_http_version 1.1; # 啟用gzip壓縮的最小http版本
    #gzip_static on; # 如果是提前`gzip`過的需要啟用此配置
    #gzip_types text/css appliction/javascript text/html; # 壓縮的文件類型
    
    # 其它配置文件
    include /etc/nginx/conf.d/*.conf; 
    
    server {
        listen       80; # 服務(wù)監(jiān)聽端口
        server_name  test.222.com test1.222.com; # 服務(wù)使用的域名可以是ip/域名/localhost,可配置多個(gè)

        #access_log  /var/log/nginx/host.access.log  main;  # 單獨(dú) 為該服務(wù)定義一個(gè)日志路徑丽已,而不是使用全局的

        #ssl_certificate /root/nginx/ssl/test.222.com.pem;   # 證書文件地址 https需要
        #ssl_certificate_key /root/nginx/ssl/test.222.com.key;  # 私鑰文件地址 https需要

        # 定義訪問改服務(wù)URI的匹配規(guī)則
        location / {
            root   /usr/share/nginx/html; # 根目錄
            index  index.html index.htm; # 默認(rèn)訪問文件
        }

        #error_page  404              /404.html; # 404頁面

        error_page   500 502 503 504  /50x.html; # 狀態(tài)碼500 502 503 504重定向到/50x.html
        # 精確匹配
        location = /50x.html {
            root   /usr/share/nginx/html; # 根目錄
        }
    }
}

上述配置日志格式log_format是含有訪問ip蚌堵,訪問用戶,時(shí)間沛婴,請(qǐng)求行吼畏,請(qǐng)求響應(yīng)狀態(tài)碼,訪問referer嘁灯,訪問客戶端ua泻蚊,轉(zhuǎn)發(fā)的ip

執(zhí)行/var/log/nginx/access.log可以實(shí)時(shí)在控制臺(tái)查看日志,如下

access_log.png

上述是一個(gè)最簡(jiǎn)單的靜態(tài)資源服務(wù)的nginx配置丑婿。當(dāng)你訪問test.222.com或者test1.222.com(前提是這兩個(gè)域名已經(jīng)備案并添加了解析)時(shí)性雄,nginx就會(huì)訪問匹配到上述配置的server,在server內(nèi)部會(huì)根據(jù)訪問路徑命中location羹奉。上述只配置了/前綴命中所有路徑毅贮,然后根據(jù)路徑會(huì)訪問/usr/share/nginx/html目錄下的文件

server配置塊

server 是配置服務(wù)的,可以理解成針對(duì)域名形式的路由匹配尘奏。

根據(jù)配置的server_name匹配優(yōu)先級(jí)順序如下所示

  • 精準(zhǔn)匹配
  • *在前
  • *在后
  • 正則匹配
  • default_server

即優(yōu)先級(jí)如下:

test.222.com > *.222.com > test.222.*>~(\w+)\.test\.222\.com$ > default.conf文件的配置

location匹配規(guī)則
  • location僅匹配請(qǐng)求路徑,忽略請(qǐng)求參數(shù)
  • 前綴字符串
    • 常規(guī)(前綴)
    • = 精準(zhǔn)
    • ^~ 忽略正則的前綴匹配
  • 正則匹配
    • ~ 大小寫敏感的正則匹配
    • ~*大小寫不敏感的正則匹配

匹配的優(yōu)先級(jí)順序如圖

ng_location_img.png
  • =優(yōu)先級(jí)最高病蛉;一旦成功不在查找其它項(xiàng)
  • ^~一旦匹配成功炫加;不在查找其它項(xiàng)
  • 正則表達(dá)式的優(yōu)先級(jí)次之瑰煎,如果多個(gè)location的正則匹配,則使用正則表達(dá)式最長的那個(gè)
  • 常規(guī)字符串匹配類型按前綴匹配
location ~ /Test/$ {
  return 200 "匹配到的第一個(gè)正則";
}

location ~* /Test/(\w+)$ {
  return 200 "匹配到的最長的正則";
}

location ^~ /Test/ {
  return 200 "忽略后續(xù)的正則";
}

location /Test/a {
  return 200 "最長的前綴匹配";
}

location /Test {
  return 200 "前綴匹配";
}

location = /Test {
  return 200 "精確匹配"
}

訪問下邊4個(gè)地址分別得到的請(qǐng)求結(jié)果

/Test -> 精確匹配
/Test/ -> 忽略后續(xù)的正則
/Test/a -> 匹配到的最長的正則
/test/a -> 匹配到的最長的正則

rewrite使用

可以實(shí)現(xiàn)url的重寫和重定向

rewrite 正則 replacement  [flag]

作用域server/http

  • 請(qǐng)求的地址如果匹配到了正則俗孝,會(huì)被后邊的replacement替換酒甸,然后通過[flag]標(biāo)識(shí)符決定后一步的處理行為

示例

 rewrite ^(.*)$  https://$host$1 permanent;  # 可以讓http重定向到https

使用場(chǎng)景

  • URL頁面跳轉(zhuǎn) http -> https,/a-> /b
  • 兼容舊版本
  • SEO優(yōu)化(偽靜態(tài))/:id.html => /:id
  • 維護(hù)提示

[flag]標(biāo)識(shí)符列舉

  • last 返回200 地址欄不發(fā)生變化
  • break 返回200 地址欄不發(fā)生變化
  • redirect 臨時(shí)重定向赋铝; 返回302插勤,地址欄發(fā)生變化
  • permanent 永久重定向; 返回301革骨,地址欄發(fā)生變化

lastbreak的區(qū)別

  • 當(dāng)rewrite規(guī)則在location{}外农尖,breaklast作用一樣,遇到breaklast后良哲,其后續(xù)的rewrite/return語句不再執(zhí)行盛卡。但后續(xù)有location{}的話,還會(huì)近一步執(zhí)行location{}里面的語句,當(dāng)然前提是請(qǐng)求必須要匹配該location
  • 當(dāng)rewrite規(guī)則在location{}里筑凫,遇到break后滑沧,本location{}與其他location{}的所有rewrite/return規(guī)則都不再執(zhí)行。
  • 當(dāng)rewrite規(guī)則在location{}里巍实,遇到last后滓技,本location{}里后續(xù)rewrite/return規(guī)則不執(zhí)行,但重寫后的url再次從頭開始執(zhí)行所有規(guī)則棚潦,哪個(gè)匹配執(zhí)行哪個(gè)令漂。

前端應(yīng)用場(chǎng)景

監(jiān)控nginx狀態(tài)
stub_status on/off;

作用域范圍server/location

配置示例:

location /status {
         stub_status on;
}

訪問該路徑會(huì)看到nginx當(dāng)前的處理狀態(tài)

微信截圖_20221013173046.png
  • Active connections 當(dāng)前所有處于打開狀態(tài)的連接數(shù)
  • accepts 總處理的連接數(shù)
  • handled 總成功創(chuàng)建握手?jǐn)?shù)
  • requests 總處理的請(qǐng)求數(shù)
  • Reading 正在讀取客戶端的連接數(shù)
  • Writing 正在響應(yīng)數(shù)據(jù)到客戶端的數(shù)量
  • Waiting 正在等待下一次請(qǐng)求的駐留連接數(shù)
請(qǐng)求限制

需要先安裝yum install -y httpd-tools

模擬請(qǐng)求ab -n 40 -c 20 http://127.0.0.1

  • -n 總共請(qǐng)求的次數(shù)
  • -c 并發(fā)的請(qǐng)求數(shù),每秒請(qǐng)求的數(shù)量

請(qǐng)求連接的限制

limit_conn_zone $binary_remote_addr zone=conn_zone:10m; 

作用域范圍http瓦盛;定義共享區(qū)域大小

limit_conn conn_zone 1; # 指定限制域洗显,請(qǐng)求連接每秒限制1個(gè)
limit_conn_status 500; # 限制攔截的狀態(tài)返回500
limit_conn_log_level warn; # 失敗的日志級(jí)別
limit_rate 50; # 每秒服務(wù)器只能給客戶端50字節(jié)的數(shù)據(jù)

作用域范圍http/server/location

請(qǐng)求數(shù)限制

limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

作用域范圍http;定義共享域大小原环,每秒一個(gè)ip只能請(qǐng)求1次

limit_req zone=req_zone burst=3;
  • burst可以暫存的最大請(qǐng)求數(shù)挠唆;比如某一個(gè)客戶端同時(shí)發(fā)送5個(gè)請(qǐng)求,那么這一秒處理1個(gè)嘱吗,暫存3個(gè)玄组,失敗一個(gè)。暫存3個(gè)會(huì)在將來有序被處理
訪問控制
  • 基于IP的訪問控制 -http_access_module
  • 基于用戶登錄信息的訪問控制 -http_auth_basic_module
location = /admin.html {
  deny ip;
  allow all;
}

作用域范圍http/server/location

設(shè)置緩存

注意緩存僅僅設(shè)置靜態(tài)資源谒麦,不要設(shè)置動(dòng)態(tài)資源

expires 1h;  # 設(shè)置緩存時(shí)間
add_header Cache-Control no-cache / no-store / public / private; # 設(shè)置緩存策略 no-store不緩存俄讹,no-cache協(xié)商緩存 , public可以被任何對(duì)象緩存,private只能針對(duì)個(gè)人用戶不能被代理服務(wù)器緩存
支持跨域

當(dāng)服務(wù)端不支持跨域并且服務(wù)端也是經(jīng)過nginx代理绕德,可以在nginx配置cros跨域的支持患膛,如下

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
add_header Access-Control-Allow-Headers token,xxx;
add_header Access-Control-Allow-Credentials 'true';
add_header Access-Control-Max-Age 6h;
if ($request_method = 'OPTIONS') {
       return 204;
}

可以配置http/server/location塊內(nèi)

防盜鏈

如果你的靜態(tài)資源不希望被別的的站點(diǎn)訪問,可以設(shè)置防盜鏈耻蛇,僅僅只支持自己的站點(diǎn)訪問踪蹬,可以配置如下

location ~* \.(gif|jpg|png)$ {
    valid_referers none blocked 域名/ip; # 沒有refer 具體域名/ip可以訪問
    if ($invalid_referer) { # 上述配置后會(huì)得到一個(gè)內(nèi)置變量$invalid_referer胞此,該變量false直接返回403
      return 403; # 無效的referer返回403狀態(tài)
    }
}

curl -e "ip" url模擬加referer訪問具體url

正向代理
正向代理.jpg

對(duì)于訪問目標(biāo)來說,代理的是客戶端跃捣。對(duì)于公司局域網(wǎng)內(nèi)往往會(huì)有一個(gè)代理來訪問外網(wǎng)以進(jìn)行局域網(wǎng)內(nèi)網(wǎng)絡(luò)訪問控制漱牵,還有vpnCharles等都是正向代理的應(yīng)用疚漆。nginx配置正向代理如下:

resolver 114.114.114.114; # DNS解析
location {
  proxy_pass http://$http_host$http_rui # 
}
反向代理
反向代理.jpg

反向代理酣胀,其實(shí)對(duì)客戶端無感知的;因?yàn)榭蛻舳瞬恍枰魏闻渲镁涂梢栽L問娶聘,只需要將請(qǐng)求發(fā)送到反向代理服務(wù)器闻镶,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,在返回給客戶端趴荸。暴露的是代理服務(wù)器地址儒溉,隱藏了真實(shí)服務(wù)器IP地址。

  • 保護(hù)了真實(shí)的web服務(wù)器发钝,web服務(wù)器對(duì)外不可見
  • 節(jié)約了有限的IP地址資源
    • 在所有的服務(wù)器之間使用私有地址(局域網(wǎng)內(nèi)的地址)訪問顿涣,不分配真正的外網(wǎng)的ip
  • 減少web服務(wù)器壓力,提高響應(yīng)速度
    • 可以適當(dāng)在代理服務(wù)緩存結(jié)果
  • 跨域
  • 請(qǐng)求的統(tǒng)一控制(權(quán)限酝豪、過濾規(guī)則)
  • 等等
location / {
    proxy_pass http://127.0.0.1:3000; # 真實(shí)的服務(wù)
    index  index.html index.htm;
    proxy_pass http://xxxxx.com;
    proxy_set_header Host $http_host; # 向后傳遞host請(qǐng)求頭
    proxy_set_header X-Real_IP $remote_addr; # 向后傳遞前一個(gè)客戶端請(qǐng)求的ip地址
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 層層傳遞客戶端和代理服務(wù)器ip
    proxy_connect_timeout 90;  # 連接超時(shí)時(shí)間
    proxy_send_timeout 90; # 連接成功后等候服務(wù)器響應(yīng)時(shí)間
    proxy_read_timeout 90; # 服務(wù)器數(shù)據(jù)回傳時(shí)間就是在規(guī)定時(shí)間之內(nèi)服務(wù)器必須傳完所有的數(shù)據(jù)
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    ...
}

注意事項(xiàng)

  • proxy_pass后的url最后加上/就是絕對(duì)路徑涛碑,localtion中匹配的路徑部分不走代理,也就是會(huì)被替換掉孵淘。
location /api/ {
    proxy_pass http:/test.222.com/;
}

訪問 http://xxxx/api/user -> http:/test.222.com/user

  • proxy_pass后的url最后如果沒有/就是相對(duì)路徑蒲障,location中匹配的路徑會(huì)走代理也就是會(huì)保留location匹配的路徑
location /api {
    proxy_pass http:/test.222.com;
}

訪問 http://xxxx/api/user -> http:/test.222.com/api/user

負(fù)載均衡
  • 服務(wù)器的處理能力,存儲(chǔ)空間不足瘫证,而擴(kuò)容永遠(yuǎn)也滿足不了實(shí)際的問題
  • 集群可以解決高并發(fā)揉阎,流量過高導(dǎo)致服務(wù)器壓力大的問題
upstream upName {
  server xxx1.com;
  server xxx2.com;
  server xxx3.com;
}

location / {
  proxy_pass http://upName;
}

分配策略

  • 輪巡
  • 權(quán)重輪巡
upstream upName {
  server xxx1.com weight=1;
  server xxx2.com weight=2;
  server xxx3.com weight=3;
}
  • ip_hash相同的ip始終命中固定服務(wù)器
upstream upName {
  ip_hash;
  server xxx1.com;
  server xxx2.com;
  server xxx3.com;
}
  • least_conn 哪個(gè)服務(wù)的連接數(shù)最小命中哪一個(gè)
  • url_hash 固定的url不變命中的服務(wù)器也會(huì)固定。需要安裝第三方模塊才可以使用
upstream upName {
  url_hash;
  ...
}
  • fair 按后端的響應(yīng)時(shí)間劃分背捌,越快的服務(wù)被分配毙籽。需要安裝第三方模塊才可以使用

根據(jù)服務(wù)器的運(yùn)行狀態(tài)

upstream upName1 {
  server xxx.com down/backup/max_conns/max_fair=3 max_fair_timeout=10s/
}
  • down 服務(wù)器掛了,不參與分配
  • backup 備份服務(wù)毡庆,其它服務(wù)掛了才會(huì)使用該服務(wù)
  • max_fair=3 max_fair_timeout=10s 服務(wù)響應(yīng)失敗3次休眠10s坑赡,過了這個(gè)時(shí)間段恢復(fù)正常
  • max_conns 服務(wù)鏈接最大數(shù)

結(jié)語

以上介紹了nginx的知識(shí)點(diǎn)以及在前端的應(yīng)用場(chǎng)景。運(yùn)用到實(shí)際項(xiàng)目的生產(chǎn)環(huán)境還需針對(duì)實(shí)際問題做不同的nginx配置么抗。ps:雖然在稍微大一點(diǎn)的公司nginx操作不屬于前端職責(zé)毅否,但我們也需要儲(chǔ)存nginx知識(shí),以備不時(shí)之需~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝇刀,一起剝皮案震驚了整個(gè)濱河市螟加,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖仰迁,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甸昏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡徐许,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門卒蘸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雌隅,“玉大人是晨,你說我怎么就攤上這事惶洲。” “怎么了颁褂?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵趾牧,是天一觀的道長检盼。 經(jīng)常有香客問我,道長翘单,這世上最難降的妖魔是什么吨枉? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮哄芜,結(jié)果婚禮上貌亭,老公的妹妹穿的比我還像新娘。我一直安慰自己认臊,他們只是感情好圃庭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著失晴,像睡著了一般剧腻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涂屁,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天书在,我揣著相機(jī)與錄音,去河邊找鬼胯陋。 笑死蕊温,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遏乔。 我是一名探鬼主播义矛,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼盟萨!你這毒婦竟也來了凉翻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤捻激,失蹤者是張志新(化名)和其女友劉穎制轰,沒想到半個(gè)月后前计,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垃杖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年男杈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片调俘。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伶棒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彩库,到底是詐尸還是另有隱情肤无,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布骇钦,位于F島的核電站宛渐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眯搭。R本人自食惡果不足惜窥翩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坦仍。 院中可真熱鬧鳍烁,春花似錦、人聲如沸繁扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梳玫。三九已至爹梁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間提澎,已是汗流浹背姚垃。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盼忌,地道東北人积糯。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像谦纱,于是被迫代替她去往敵國和親看成。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容