最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx服務器配置性能優(yōu)化方案

 更新時間:2016年10月18日 14:19:27   作者:root  
這篇文章主要為大家詳細介紹了Nginx服務器配置性能優(yōu)化方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下

高層的配置
nginx.conf文件中,Nginx中有少數(shù)的幾個高級配置在模塊部分之上。
user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 100000;

user和pid應該按默認設置 - 我們不會更改這些內容,因為更改與否沒有什么不同。

worker_processes 定義了nginx對外提供web服務時的worker進程數(shù)。最優(yōu)值取決于許多因素,包括(但不限于)CPU核的數(shù)量、存儲數(shù)據(jù)的硬盤數(shù)量及負載模式。不能確定的時候,將其設置為可用的CPU內核數(shù)將是一個好的開始(設置為“auto”將嘗試自動檢測它)。

worker_rlimit_nofile 更改worker進程的最大打開文件數(shù)限制。如果沒設置的話,這個值為操作系統(tǒng)的限制。設置后你的操作系統(tǒng)和Nginx可以處理比“ulimit -a”更多的文件,所以把這個值設高,這樣nginx就不會有“too many open files”問題了。

Events模塊
events模塊中包含nginx中所有處理連接的設置。
events {
worker_connections 2048;
multi_accept on;
use epoll;
}

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

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

use 設置用于復用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應該使用epoll。如果你使用*BSD,你應該使用kqueue。
(值得注意的是如果你不知道Nginx該使用哪種輪詢方法的話,它會選擇一個最適合你操作系統(tǒng)的)

HTTP 模塊

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

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

server_tokens  并不會讓nginx執(zhí)行的速度更快,但它可以關閉在錯誤頁面中的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)絡。

sendfile()是立即將數(shù)據(jù)從磁盤讀到OS緩存。因為這種拷貝是在內核完成 的,sendfile()要比組合read()和write()以及打開關閉丟棄緩沖更加有效(更多有關于sendfile)。

tcp_nopush 告訴nginx在一個數(shù)據(jù)包里發(fā)送所有頭文件,而不一個接一個的發(fā)送。

tcp_nodelay 告訴nginx不要緩存數(shù)據(jù),而是一段一段的發(fā)送--當需要及時發(fā)送數(shù)據(jù)時,就應該給應用設置這個屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時就不能立即得到返回值。

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

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

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

keepalive_timeout  給客戶端分配keep-alive鏈接超時時間。服務器將在這個超時時間過后關閉鏈接。我們將它設置低些可以讓ngnix持續(xù)工作的時間更長。

client_header_timeout client_body_timeout 設置請求頭和請求體(各自)的超時時間。我們也可以把這個設置低些。

reset_timeout_connection 告訴nginx關閉不響應的客戶端連接。這將會釋放那個客戶端所占有的內存空間。

send_timeout 指定客戶端的響應超時時間。這個設置不會用于整個轉發(fā)器,而是在兩次客戶端讀取操作之間。如果在這段時間內,客戶端沒有讀取任何數(shù)據(jù),nginx就會關閉連接。

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

limit_conn_zone 設置用于保存各種key(比如當前連接數(shù))的共享內存的參數(shù)。5m就是5兆字節(jié),這個值應該被設置的足夠大以存儲(32K*5)32byte狀態(tài)或者(16K*5)64byte狀態(tài)。

limit_conn 為給定的key設置最大連接數(shù)。這里key是addr,我們設置的值是100,也就是說我們允許每一個IP地址最多同時打開有100個連接。

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

include 只是一個在當前文件中包含另一個文件內容的指令。這里我們使用它來加載稍后會用到的一系列的MIME類型。

default_type 設置文件使用的默認的MIME-type。

charset 設置我們的頭文件中的默認的字符集

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功能。我們設置成IE6或者更低版本以使我們的方案能夠廣泛兼容。

gzip_static 告訴nginx在壓縮資源之前,先查找是否有預先gzip處理過的資源。這要求你預先壓縮你的文件(在這個例子中被注釋掉了),從而允許你使用最高壓縮比,這樣nginx就不用再壓縮這些文件了(想要更詳盡的gzip_static的信息,請點擊這里)。

gzip_proxied 允許或者禁止壓縮基于請求和響應的響應流。我們設置為any,意味著將會壓縮所有的請求。

gzip_min_length 設置對數(shù)據(jù)啟用壓縮的最少字節(jié)數(shù)。如果一個請求小于1000字節(jié),我們最好不要壓縮它,因為壓縮這些小的數(shù)據(jù)會降低處理此請求的所有進程的速度。

gzip_comp_level 設置數(shù)據(jù)的壓縮等級。這個等級可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的。我們設置為4,這是一個比較折中的設置。

gzip_type 設置需要壓縮的數(shù)據(jù)格式。上面例子中已經(jīng)有一些了,你也可以再添加更多的格式。

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

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使設置生效。
sudo service nginx restart

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決辦法

    nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決辦法

    Nginx服務器的反向代理服務是其最常用的重要功能,由反向代理服務也可以衍生出很多與此相關的Nginx服務器重要功能,下面這篇文章主要給大家介紹了關于nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決的相關資料,需要的朋友可以參考下
    2023-12-12
  • 淺談Nginx10m+高并發(fā)內核優(yōu)化詳解

    淺談Nginx10m+高并發(fā)內核優(yōu)化詳解

    這篇文章主要介紹了淺談Nginx10m+高并發(fā)內核優(yōu)化詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • linux下Nginx 0.8.40的安裝方法

    linux下Nginx 0.8.40的安裝方法

    這篇文章主要介紹了linux下Nginx 0.8.40的安裝方法,需要的朋友可以參考下
    2014-11-11
  • Linux中Nginx的防盜鏈和優(yōu)化的實現(xiàn)代碼

    Linux中Nginx的防盜鏈和優(yōu)化的實現(xiàn)代碼

    今天是周末小編在值班哈,很開森,工作使我快樂,本文重點給大家介紹Linux中Nginx的防盜鏈和優(yōu)化問題及實現(xiàn)代碼,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • Windows Server 2016 MySQL數(shù)據(jù)庫安裝配置詳細安裝教程

    Windows Server 2016 MySQL數(shù)據(jù)庫安裝配置詳細安裝教程

    這篇文章主要介紹了Windows Server 2016 MySQL數(shù)據(jù)庫安裝配置詳細安裝教程,需要的朋友可以參考下
    2017-08-08
  • 使用Kubernetes部署Springboot或Nginx的詳細教程

    使用Kubernetes部署Springboot或Nginx的詳細教程

    這篇文章主要介紹了用Kubernetes部署Springboot或Nginx的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Nginx啟動時80端口被占用的問題解決

    Nginx啟動時80端口被占用的問題解決

    本文主要介紹了在啟動Nginx時遇到80端口被占用的問題及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • Nginx?Gunicorn?flask項目部署思路分析詳解

    Nginx?Gunicorn?flask項目部署思路分析詳解

    這篇文章主要為大家介紹了Nginx?Gunicorn?flask項目部署思路分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Nginx出現(xiàn)請求重復提交的處理方法

    Nginx出現(xiàn)請求重復提交的處理方法

    在網(wǎng)絡世界的大舞臺上,Nginx 就像是一位兢兢業(yè)業(yè)的交通警察,指揮著網(wǎng)絡請求的有序流動,然而,有時候也會出現(xiàn)一些讓人頭疼的狀況,比如請求的重復提交,該如何應對呢?本文介紹了Nginx出現(xiàn)請求重復提交的處理方法,需要的朋友可以參考下
    2024-07-07
  • Nginx實現(xiàn)接口限流的方法匯總

    Nginx實現(xiàn)接口限流的方法匯總

    這篇文章主要為大家詳細介紹了Nginx實現(xiàn)接口限流的相關方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11

最新評論

那坡县| 新乡县| 凤翔县| 延津县| 阿瓦提县| 伽师县| 新余市| 澜沧| 翁牛特旗| 汉源县| 孟村| 万源市| 山丹县| 乌鲁木齐县| 泽普县| 峨眉山市| 镇宁| 西盟| 阿坝县| 白玉县| 永平县| 民乐县| 宝丰县| 垣曲县| 八宿县| 大石桥市| 义乌市| 平乐县| 辉南县| 泸水县| 江西省| 墨玉县| 大田县| 武邑县| 特克斯县| 乐安县| 神木县| 铜梁县| 巴林右旗| 屯昌县| 尼勒克县|