国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - Nginx - Nginx配置優(yōu)化詳解

Nginx配置優(yōu)化詳解

2019-10-15 11:47Nginx技術(shù)網(wǎng) Nginx

如果你已經(jīng)安裝過Nginx并在生產(chǎn)環(huán)境中使用,那么Nginx配置優(yōu)化你一定也要做,這樣才能看到Nginx性能,本文就從基本配置優(yōu)化開始到高層配置教你如何優(yōu)化Nginx

大多數(shù)的Nginx安裝指南告訴你如下基礎(chǔ)知識——通過apt-get安裝,修改這里或那里的幾行配置,好了,你已經(jīng)有了一個Web服務(wù)器了!而且,在大多數(shù)情況下,一個常規(guī)安裝的nginx對你的網(wǎng)站來說已經(jīng)能很好地工作了。然而,如果你真的想擠壓出nginx的性能,你必須更深入一些。在本指南中,我將解釋Nginx的那些設(shè)置可以微調(diào),以優(yōu)化處理大量客戶端時的性能。需要注意一點,這不是一個全面的微調(diào)指南。這是一個簡單的預(yù)覽——那些可以通過微調(diào)來提高性能設(shè)置的概述。你的情況可能不同。

基本的(優(yōu)化過的)配置

我們將修改的唯一文件是nginx.conf,其中包含Nginx不同模塊的所有設(shè)置。你應(yīng)該能夠在服務(wù)器的/etc/nginx目錄中找到nginx.conf。首先,我們將談?wù)撘恍┤衷O(shè)置,然后按文件中的模塊挨個來,談一下哪些設(shè)置能夠讓你在大量客戶端訪問時擁有良好的性能,為什么它們會提高性能。本文的結(jié)尾有一個完整的配置文件。

高層的配置

nginx.conf文件中,Nginx中有少數(shù)的幾個高級配置在模塊部分之上。

 

復(fù)制代碼代碼如下:


user www-data;
pid /var/run/nginx.pid;

 

worker_processes auto;

worker_rlimit_nofile 100000;

 

user和pid應(yīng)該按默認設(shè)置 - 我們不會更改這些內(nèi)容,因為更改與否沒有什么不同。
worker_processes 定義了nginx對外提供web服務(wù)時的worder進程數(shù)。最優(yōu)值取決于許多因素,包括(但不限于)CPU核的數(shù)量、存儲數(shù)據(jù)的硬盤數(shù)量及負載模式。不能確定的時候,將其設(shè)置為可用的CPU內(nèi)核數(shù)將是一個好的開始(設(shè)置為“auto”將嘗試自動檢測它)。
worker_rlimit_nofile 更改worker進程的最大打開文件數(shù)限制。如果沒設(shè)置的話,這個值為操作系統(tǒng)的限制。設(shè)置后你的操作系統(tǒng)和Nginx可以處理比“ulimit -a”更多的文件,所以把這個值設(shè)高,這樣nginx就不會有“too many open files”問題了。


Events模塊

events模塊中包含nginx中所有處理連接的設(shè)置。

 

復(fù)制代碼代碼如下:

events {
    worker_connections 2048;
    multi_accept on;
    use epoll;
}

 

worker_connections設(shè)置可由一個worker進程同時打開的最大連接數(shù)。如果設(shè)置了上面提到的worker_rlimit_nofile,我們可以將這個值設(shè)得很高。
記住,最大客戶數(shù)也由系統(tǒng)的可用socket連接數(shù)限制(~ 64K),所以設(shè)置不切實際的高沒什么好處。

multi_accept 告訴nginx收到一個新連接通知后接受盡可能多的連接。

use 設(shè)置用于復(fù)用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應(yīng)該使用epoll。如果你使用*BSD,你應(yīng)該使用kqueue。想知道更多有關(guān)事件輪詢?看下維基百科吧(注意,想了解一切的話可能需要neckbeard和操作系統(tǒng)的課程基礎(chǔ))

(值得注意的是如果你不知道Nginx該使用哪種輪詢方法的話,它會選擇一個最適合你操作系統(tǒng)的)

HTTP 模塊

HTTP模塊控制著nginx http處理的所有核心特性。因為這里只有很少的配置,所以我們只節(jié)選配置的一小部分。所有這些設(shè)置都應(yīng)該在http模塊中,甚至你不會特別的注意到這段設(shè)置。

 

復(fù)制代碼代碼如下:


http {

 

    server_tokens off;

    sendfile on;

    tcp_nopush on;
    tcp_nodelay on;

    ...
}

 

server_tokens 并不會讓nginx執(zhí)行的速度更快,但它可以關(guān)閉在錯誤頁面中的nginx版本數(shù)字,這樣對于安全性是有好處的。
sendfile可以讓sendfile()發(fā)揮作用。sendfile()可以在磁盤和TCP socket之間互相拷貝數(shù)據(jù)(或任意兩個文件描述符)。Pre-sendfile是傳送數(shù)據(jù)之前在用戶空間申請數(shù)據(jù)緩沖區(qū)。之后用read()將數(shù)據(jù)從文件拷貝到這個緩沖區(qū),write()將緩沖區(qū)數(shù)據(jù)寫入網(wǎng)絡(luò)。sendfile()是立即將數(shù)據(jù)從磁盤讀到OS緩存。因為這種拷貝是在內(nèi)核完成的,sendfile()要比組合read()和write()以及打開關(guān)閉丟棄緩沖更加有效(更多有關(guān)于sendfile)

tcp_nopush 告訴nginx在一個數(shù)據(jù)包里發(fā)送所有頭文件,而不一個接一個的發(fā)送
tcp_nodelay 告訴nginx不要緩存數(shù)據(jù),而是一段一段的發(fā)送--當(dāng)需要及時發(fā)送數(shù)據(jù)時,就應(yīng)該給應(yīng)用設(shè)置這個屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時就不能立即得到返回值。

 

復(fù)制代碼代碼如下:

access_log off;
error_log /var/log/nginx/error.log crit;

 

access_log設(shè)置nginx是否將存儲訪問日志。關(guān)閉這個選項可以讓讀取磁盤IO操作更快(aka,YOLO)
error_log 告訴nginx只能記錄嚴重的錯誤

 

復(fù)制代碼代碼如下:


keepalive_timeout 10;

 

client_header_timeout 10;
client_body_timeout 10;

reset_timedout_connection on;
send_timeout 10;

 

keepalive_timeout 給客戶端分配keep-alive鏈接超時時間。服務(wù)器將在這個超時時間過后關(guān)閉鏈接。我們將它設(shè)置低些可以讓ngnix持續(xù)工作的時間更長。
client_header_timeout 和client_body_timeout 設(shè)置請求頭和請求體(各自)的超時時間。我們也可以把這個設(shè)置低些。

reset_timeout_connection告訴nginx關(guān)閉不響應(yīng)的客戶端連接。這將會釋放那個客戶端所占有的內(nèi)存空間。
send_timeout 指定客戶端的響應(yīng)超時時間。這個設(shè)置不會用于整個轉(zhuǎn)發(fā)器,而是在兩次客戶端讀取操作之間。如果在這段時間內(nèi),客戶端沒有讀取任何數(shù)據(jù),nginx就會關(guān)閉連接。

 

復(fù)制代碼代碼如下:

limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100;

 

limit_conn_zone設(shè)置用于保存各種key(比如當(dāng)前連接數(shù))的共享內(nèi)存的參數(shù)。5m就是5兆字節(jié),這個值應(yīng)該被設(shè)置的足夠大以存儲(32K*5)32byte狀態(tài)或者(16K*5)64byte狀態(tài)。
limit_conn為給定的key設(shè)置最大連接數(shù)。這里key是addr,我們設(shè)置的值是100,也就是說我們允許每一個IP地址最多同時打開有100個連接。

 

復(fù)制代碼代碼如下:

include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;

 

include只是一個在當(dāng)前文件中包含另一個文件內(nèi)容的指令。這里我們使用它來加載稍后會用到的一系列的MIME類型。
default_type設(shè)置文件使用的默認的MIME-type。
charset設(shè)置我們的頭文件中的默認的字符集

以下兩點對于性能的提升在偉大的WebMasters StackExchange中有解釋。

 

復(fù)制代碼代碼如下:


gzip on;
gzip_disable "msie6";

 

# gzip_static on;
gzip_proxied any;
gzip_min_length 1000;
gzip_comp_level 4;

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

 

gzip是告訴nginx采用gzip壓縮的形式發(fā)送數(shù)據(jù)。這將會減少我們發(fā)送的數(shù)據(jù)量。
gzip_disable為指定的客戶端禁用gzip功能。我們設(shè)置成IE6或者更低版本以使我們的方案能夠廣泛兼容。
gzip_static告訴nginx在壓縮資源之前,先查找是否有預(yù)先gzip處理過的資源。這要求你預(yù)先壓縮你的文件(在這個例子中被注釋掉了),從而允許你使用最高壓縮比,這樣nginx就不用再壓縮這些文件了(想要更詳盡的gzip_static的信息,請點擊這里)。
gzip_proxied允許或者禁止壓縮基于請求和響應(yīng)的響應(yīng)流。我們設(shè)置為any,意味著將會壓縮所有的請求。
gzip_min_length設(shè)置對數(shù)據(jù)啟用壓縮的最少字節(jié)數(shù)。如果一個請求小于1000字節(jié),我們最好不要壓縮它,因為壓縮這些小的數(shù)據(jù)會降低處理此請求的所有進程的速度。
gzip_comp_level設(shè)置數(shù)據(jù)的壓縮等級。這個等級可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的。我們設(shè)置為4,這是一個比較折中的設(shè)置。
gzip_type設(shè)置需要壓縮的數(shù)據(jù)格式。上面例子中已經(jīng)有一些了,你也可以再添加更多的格式。

 

復(fù)制代碼代碼如下:


# cache informations about file descriptors, frequently accessed files
# can boost performance, but you need to test those values
open_file_cache max=100000 inactive=20s; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 2;
open_file_cache_errors on;

 

##
# Virtual Host Configs
# aka our settings for specific servers
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

 

open_file_cache打開緩存的同時也指定了緩存最大數(shù)目,以及緩存的時間。我們可以設(shè)置一個相對高的最大時間,這樣我們可以在它們不活動超過20秒后清除掉。
open_file_cache_valid 在open_file_cache中指定檢測正確信息的間隔時間。
open_file_cache_min_uses 定義了open_file_cache中指令參數(shù)不活動時間期間里最小的文件數(shù)。
open_file_cache_errors指定了當(dāng)搜索一個文件時是否緩存錯誤信息,也包括再次給配置中添加文件。我們也包括了服務(wù)器模塊,這些是在不同文件中定義的。如果你的服務(wù)器模塊不在這些位置,你就得修改這一行來指定正確的位置。

一個完整的配置

 

復(fù)制代碼代碼如下:


user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 100000;

 

events {
    worker_connections 2048;
    multi_accept on;
    use epoll;
}

http {
    server_tokens off;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    access_log off;
    error_log /var/log/nginx/error.log crit;

    keepalive_timeout 10;
    client_header_timeout 10;
    client_body_timeout 10;
    reset_timedout_connection on;
    send_timeout 10;

    limit_conn_zone $binary_remote_addr zone=addr:5m;
    limit_conn addr 100;

    include /etc/nginx/mime.types;
    default_type text/html;
    charset UTF-8;

    gzip on;
    gzip_disable "msie6";
    gzip_proxied any;
    gzip_min_length 1000;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    open_file_cache max=100000 inactive=20s; 
    open_file_cache_valid 30s; 
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

 

編輯完配置后,確認重啟nginx使設(shè)置生效。

 

復(fù)制代碼代碼如下:

sudo service nginx restart

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久人人爽人人爽人人片av不 | 日韩视频免费在线观看 | 国产一级在线 | 欧美激情精品久久久久久 | 日韩成人在线电影 | 三级视频网站 | 精品福利一区二区三区免费视频 | 亚洲欧美综合精品久久成人 | 久久白虎 | 日韩中文字幕视频在线 | 国产亚洲一区二区三区 | 一区二区三区www. | 国产超碰人人爽人人做人人爱 | 国产成人精品一区二区三区视频 | www久草 | 91色视频在线观看 | 中国一级黄色毛片视频 | 国产精品三区在线 | 亚洲国产高清在线 | 91视频8mav| 日韩成人精品在线 | 日韩精品一区二区在线观看视频 | 国产欧美日韩综合精品一区二区 | 亚洲国产日韩欧美在线 | 免费在线观看毛片 | 日本韩国欧美一区 | a级免费电影| 国产www视频 | 川上优av中文字幕一区二区 | 午夜tv| 国产成人精品一区二区在线 | 午夜区| 久久久久一区 | 亚洲欧美日韩国产综合 | 欧美亚洲国产日韩 | 天天爽夜夜爽夜夜爽精品视频 | 国产成人99久久亚洲综合精品 | 国产一区二区三区在线视频 | 在线免费观看日韩视频 | 日韩在线免费 | 成人av观看 |