国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx優(yōu)化

IT那活兒 / 2128人閱讀
Nginx優(yōu)化
點擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!



nginx常作為反向代理或負載均衡服務,前端業(yè)務數(shù)據(jù)緩存服務,提高靜態(tài)資源的高并發(fā)并利用反向代理加速。在此前提下,一般來說nginx的優(yōu)化一般有本文中闡述的幾項。





系統(tǒng)參數(shù)優(yōu)化


1. ulimit優(yōu)化
ulimit約束了系統(tǒng)最大打開的文件數(shù)量,可通過以下方式修改:
系統(tǒng)打開文件限制參數(shù)nofile以及系統(tǒng)打開進程數(shù)的限制參數(shù)nproc,建議兩者都設(shè)置為65535。(使用ulimit -a驗證)
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf
2. 內(nèi)核參數(shù)優(yōu)化
將以下內(nèi)核參數(shù)加入/etc/sysctl.conf文件中,執(zhí)行sysctl -p使之生效。


nginx配置優(yōu)化


1. 配置文件結(jié)構(gòu)
1)全局配置 

2)事件驅(qū)動模型配置
events {
    ...........
    ...........
}

3)http服務相關(guān)配置
http {
    http服務全局配置
    server { //虛擬主機
    location { //匹配客戶端訪問請求,根據(jù)不同的請求做不同的響應
        }
    }
}


2. 全局配置

1)啟動工作進程的數(shù)量,worker_processes  1; 
(CPU密集型:如SSl及壓縮應用,worker數(shù)量建議與CPU數(shù)量一致)
(IO密集型:如響應大量給客戶,worker進程個數(shù)為CPU數(shù)量的兩倍)
2)指定錯誤日志存放位置及日志級別 error_log  logs/error.log warn;
3)指定pid文件記錄nginx的主進程號 pid  logs/nginx.pid;
4)指定此進程打開的最大文件描述符的值 worker_rlimit_nofile 65535;
5)每個工作進程的核心文件的最大大小 worker_rlimit_core
6)將worker與CPU綁定,worker_proceses  4;
    worker_cpu_affinity 0001 0010 0100 1000。
(該示例表示分別給每個worker進程綁定一個CPU)
3. 事件驅(qū)動模型配置
1)指定epoll事件模型 use epoll;
2)每個工作進程能接受最大的客戶端的連接數(shù),提高并發(fā)連接 worker_connections 10240。

4. http服務相關(guān)配置

1)include   mime.types; #文件擴展名與文件類型映射表;
2)default_type  application/octet-stream; #默認文件類型,默認為text/plain;
3)定義訪問日志格式。
log_format  main $remote_addr $remote_user [$time_local] "$request" 
                $status $body_bytes_sent "$http_referer"
                 "$http_user_agent" "$http_x_forwarded_for" 
"$http_cookie" "$request_time" "$upstream_response_time" 
"$upstream_addr" "$upstream_status";
  • $remote_addr #客戶端IP地址
  • $remote_user #客戶端用戶
  • $time_local #訪問時間
  • $request #訪問請求(請求方法   文件名稱    HTTP協(xié)議版本)
  • $status #狀態(tài)碼
  • $body_bytes_sent #響應數(shù)據(jù)大小
  • $http_referer #超鏈接地址
  • $http_user_agent #瀏覽器類型
  • $http_x_forwarded_for #客戶真實IP
  • $http_cookie #獲取cookie信息
  • $upstream_addr #后臺upstream的地址,即真正提供服務的主機地址
  • $upstream_response_time   #請求過程中,upstream響應時間
  • $request_time   #整個請求的總時間
其他變量:
  • $host #存放請求報文中的主機部分 例:https://list.jd.com/list.html?cat=4938,11760,14408(值為標紅部分)
  • $request_uri #存放請求的URI地址,并且?guī)в姓埱笾噶?例:https://list.jd.com/list.html?cat=4938,11760,14408(值為標紅部分)
  • $scheme #存放客戶端請求使用的協(xié)議,如http,https 例:https://list.jd.com/list.html?cat=4938,11760,14408(值為標紅部分)
  • $document_uri #存放請求報文中的當前URI,并且不包括請求指令 例:https://list.jd.com/list.html?cat=4938,11760,14408(值為標紅部分)
  • $server_addr #存放服務器地址
  • $remote_addr #存放客戶端地址
  • $server_name #存放了客戶端請求到達的服務器的名稱
  • $request_filename #存放當前請求的資源文件的路徑名
  • $args #存放URL中的請求指令 例:https://list.jd.com/list.html?cat=4938,11760,14408(值為標紅部分)
4)訪問日志的存放位置
access_log  logs/access.log  main;
5)客戶端上傳文件大小限制
client_max_body_size 100m;
6)指定來自客戶端請求頭的headerbuffer大小
client_header_buffer_size 32K;
#大多數(shù)請求1K的緩沖區(qū)即可,如果cookie較大可增加緩沖區(qū)大小。
7)指定客戶端請求中較大的消息頭的緩存最大數(shù)量和大小
large_client_header_ buffers 4 32K;
# 4為個數(shù),32K為大小,最大緩存為量為4個32K。
8)開啟sendfile機制
sendfile on;
#該機制由內(nèi)核直接將內(nèi)容復制到nginx進程對應的內(nèi)容,節(jié)省文件拷貝的時間。
9)#tcp_nopush  on;
#僅在使用sendfile時開啟,響應頭和正文的開始部分一同發(fā)送。
10)#tcp_nodelay  on;
#只在長連接中啟用,用于減緩網(wǎng)絡(luò)堵塞,但及建議不要與tcp_nopush同時使用。
11)每條長連接的超時時間
keepalive_timeout  65;
12)限制長連接所能發(fā)送的最大請求數(shù)
keepalive_requests 100;
13)限制請求體的大小
client_max_body_size 100m;
#若超過所設(shè)定的大小,返回413錯誤。
14)gzip壓縮模塊
  • gzip  on; #開啟壓縮模塊

  • gzip_min_length 4K; #允許壓縮的頁面最小字節(jié)數(shù),默認值為0(建議設(shè)置大于1K,小于1K可能越壓越大)

  • gzip_buffers 4 16K; #用于處理請求壓縮的緩沖區(qū)數(shù)量和大小,申請4個16K的內(nèi)存作為數(shù)據(jù)流緩沖

  • gzip_http_version 1.1; #用于設(shè)置識別http協(xié)議版本,默認為1.1

  • gzip_comp_level 2; #用來指定壓縮比,1壓縮比最小處理速度最快,9壓縮比最大,傳輸速度快,處理慢,同時較耗費CPU資源

15)對請求進行限速
limit_req_zone zone=one:10m rate=5r/s; #表示一個內(nèi)存區(qū)域大小為10m,并且設(shè)定了名稱為one,且請求的速率是1秒5個請求。
16)定義緩存空間
proxy_cache_path /nginx/cache/first  levels-2:1:2 keys_zone=first:20m max_size=1G;
levels-2:1:2 #定義緩存目錄子目錄的級別,以及每個子目錄的名稱字符個數(shù);最多只能有三級子目錄;
3級子目錄,第1級目錄字符個數(shù)為1,第2級目錄字符個數(shù)為2,第3級目錄字符個數(shù)為2,字符個數(shù)最多只能有2個;
/nginx/cache/first #在磁盤產(chǎn)生的目錄存儲緩存數(shù)據(jù);
max_size=1G #指定/nginx/cache/first中的1G空間用于存儲緩存數(shù)據(jù)。
5. server虛擬主機
1)監(jiān)聽端口 listen   80;
2)設(shè)置虛擬主機名稱 server_name  localhost。
6. location塊
1)自動索引模塊HttpAutoindex
autoindex on; #當網(wǎng)頁目錄中沒有index.html文件,該目錄以下載網(wǎng)站的方式展現(xiàn);
2)限制模塊HttpLimit zone
該模塊可以針對條件,進行會話的并發(fā)連接數(shù)控制。(例如:限制每個IP的并發(fā)連接數(shù)。)
http { 
limit_zone   one $binary_remote_addr  10m;
server {
location /download/ {
     limit_conn   one 1;
}
限制的區(qū)域名是one,容量是10M,以變量 $binary_remote_addr 作為會話的判斷基準(即一個地址一個會話)。
$remote_addr 的長度為 7 至 15 bytes,會話信息的長度為 32 或 64 bytes;
而 $binary_remote_addr 的長度為 4 bytes,會話信息的長度為 32 bytes。
當區(qū)的大小為 1M 的時候,大約可以記錄 32000 個會話信息(一個會話占用 32 bytes)。
3)HttpLimitReqest模塊
該模塊可限制給定會話的請求數(shù)。
http { 
limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
    server {
        location /search/ {
            limit_req   zone=one burst=5; #允許用戶平均每秒不超過1個請求,突發(fā)不超過5個查詢
        }
    }
}
4)StubStatus模塊
該模塊能夠獲取Nginx自上次啟動以來的工作狀態(tài),此模塊非核心模塊,需要在編譯的時候手動添加編譯參數(shù)--with-http_stub_status_module。
location /status {
        stub_status on; #開啟該模塊
        access_log off;
        allow ***.***.230.1; #允許訪問的ip地址
        deny all; #拒絕所有ip地址訪問
}
5)proxy模塊
  • proxy_pass http://itower;

  • proxy_redirect default; #默認配置為default,建議默認即可;如果設(shè)置off,則將禁止所有的proxy_redirect指令;

  • proxy_buffering off;

  • proxy_connect_timeout 600; #向后端服務器等待建立連接的超時時間; 單位s;

  • proxy_set_header Host $host:$server_port;

  • proxy_send_timeout 600; #向后端服務器發(fā)送write請求時等待的超時時間; 單位s;

  • proxy_read_timeout 600; #向后端服務器發(fā)送read請求時等待的超時時間; 單位s;

  • proxy_buffer_size 8k; #用于配置接收一次后端服務器的響應數(shù)據(jù)的proxy buffer的個數(shù)和每個buffer的大小;

  • proxy_cache first; #開啟緩存,結(jié)合http塊中的proxy_cache_path使用;

  • proxy_cache_vaild 200 1m; #表示為狀態(tài)碼為200的數(shù)據(jù)緩存1分鐘,結(jié)合http塊中的proxy_cache_path使用。





本文作者:劉娜

本文來源:IT那活兒(上海新炬王翦團隊)

?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129618.html

相關(guān)文章

  • 11 個 Nginx 參數(shù)性能優(yōu)化工作

    摘要:配置如下指令是設(shè)定的工作模式及連接數(shù)上限。指令用來指定的工作模式。該參數(shù)默認是,建議開啟。配置進程的最大打開文件數(shù)調(diào)整配置進程的最大打開文件數(shù),這個控制連接數(shù)的參數(shù)為。但副作用是資源更新可能無法及時。 工作上,需要配置 Nginx,要投入生產(chǎn)使用,做了一點優(yōu)化工作,加上以前也經(jīng)常折騰 Nginx,故記下一些優(yōu)化工作。 優(yōu)化 Nginx 進程數(shù)量 配置參數(shù)如下: worker_proce...

    zebrayoung 評論0 收藏0
  • 高并發(fā)場景中nginx優(yōu)化方案

    摘要:本文主要從以下幾點講解如何優(yōu)化,以增強高并場景中的吞吐量。系統(tǒng)可通過命令查看核數(shù),假如為,則指單個進程能并發(fā)處理的最大連接數(shù),包含了所有的鏈接不僅僅來源于客戶端,默認值是,在一些瞬間并發(fā)量較高的場景中,這個值是遠遠不夠用的。 本文主要從以下幾點講解如何優(yōu)化Nginx,以增強高并場景中Nginx的吞吐量。 調(diào)整worker_processes和worker_connections參數(shù) ...

    EsgynChina 評論0 收藏0
  • 前端性能優(yōu)化與上線

    摘要:看下狀態(tài)可以看到我已經(jīng)有一些鏡像了我已經(jīng)刪除了拉鏡像正常即可,中間那段是中國鏡像源,我們成功下來了的鏡像。攻破像我這樣屌絲的服務器一般都買的,大的資源文件不住,一個動輒的文件這很蛋疼,不上很難受。 4000字長文,多圖預警!!!流量慎入!! 性能優(yōu)化 - 屌絲前端性能優(yōu)化、上線一條龍 大家好我又來了,本章給大家?guī)淼膬?nèi)容是:上線和上線后的性能優(yōu)化 項目地址 實戰(zhàn)預覽地址 實戰(zhàn)項目地址...

    wupengyu 評論0 收藏0
  • nginx網(wǎng)站性能優(yōu)化篇(4)】理解nginx的高并發(fā)原理及其配置調(diào)優(yōu)

    摘要:使用了多路復用技術(shù)的,就成了并發(fā)事件驅(qū)動的服務器。進程主要負責收集分發(fā)請求。同時進程也負責監(jiān)控的狀態(tài),保證高可靠性進程一般設(shè)置為跟核心數(shù)一致。所以才使得支持更高的并發(fā)。配置調(diào)優(yōu)調(diào)整指要生成的數(shù)量最佳實踐是每個運行個工作進程。 Nginx 是如何實現(xiàn)高并發(fā)的? Nginx 采用的是多進程(單線程) & 多路IO復用模型。使用了 I/O 多路復用技術(shù)的 Nginx,就成了并發(fā)事件驅(qū)動的服務...

    CODING 評論0 收藏0
  • Oracle APEX 系列文章5:在阿里云上打造屬于你自己的APEX完整開發(fā)環(huán)境 (進一步優(yōu)化)

    摘要:優(yōu)化刪除自帶的不必要的文件是有必要的,最大限度保證系統(tǒng)安全。所以我們要對進行必要的修改,讓等待數(shù)據(jù)庫啟動完畢再啟動。 showImg(https://segmentfault.com/img/remote/1460000014711637?w=1010&h=276); 本文是鋼哥的Oracle APEX系列文章中的第五篇,完整 Oracle APEX 系列文章如下: Oracle A...

    NervosNetwork 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<