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

資訊專欄INFORMATION COLUMN

Nginx優(yōu)化詳解

wind3110991 / 563人閱讀

摘要:優(yōu)化運(yùn)行用戶啟動(dòng)進(jìn)程通常設(shè)置成和的數(shù)量相等阻塞和非阻塞網(wǎng)絡(luò)模型同步阻塞模型,一請(qǐng)求一進(jìn)線程,當(dāng)進(jìn)線程增加到一定程度后更多時(shí)間浪費(fèi)到切換一,性能急劇下降,所以負(fù)載率不高基于時(shí)間的非阻塞多路復(fù)用或模型一個(gè)進(jìn)程在短時(shí)間內(nèi)可以相應(yīng)大量的請(qǐng)求建議值

nginx 優(yōu)化

user www-data; 運(yùn)行用戶

worker_processes 4; 啟動(dòng)進(jìn)程,通常設(shè)置成和cpu的數(shù)量相等

阻塞和非阻塞網(wǎng)絡(luò)模型;

同步阻塞模型,一請(qǐng)求一進(jìn)(線)程,當(dāng)進(jìn)(線)程增加到一定程度后

更多CPU時(shí)間浪費(fèi)到切換一,性能急劇下降,所以負(fù)載率不高

nginx基于時(shí)間的非阻塞多路復(fù)用(epoll或kquene)模型

一個(gè)進(jìn)程在短時(shí)間內(nèi)可以相應(yīng)大量的請(qǐng)求

建議值 <=cpu核心數(shù)量,一般高于cpu數(shù)量有好處,也許還有進(jìn)程切換開銷的負(fù)面影響

將work process綁定到特定的cpu上,避免進(jìn)程在cpu間切換的開銷

work_cpu_affinity 0001 0010 0100 1000

8內(nèi)核4進(jìn)程時(shí)的設(shè)置方法 work_cpu_affinity 00000001 00000010 00000100 10000000

worker_rlimit_nofile 655350 每進(jìn)程最大可打開文件描述符數(shù)量(Linux上文件描述符比較廣義,網(wǎng)絡(luò)端口、設(shè)備、磁盤文件都是)

文件描述符用完了,新的鏈接會(huì)被拒絕,產(chǎn)生502類錯(cuò)誤。

linux最大可打開文件數(shù)可通過(guò)ulimit -n FILECNT或 /etc/security/limit.conf配置

理論值 系統(tǒng)最大數(shù)量/進(jìn)程數(shù)。但進(jìn)程間工作量并不是平均分配的,所以可設(shè)置的大一些

error_log /var/log/nginx/error.log; 全局錯(cuò)誤日志及PID文件

pid /var/run/nginx.pid;

工作模式及連接數(shù)上限

  events {

? worker_connections 200000; 并發(fā)響應(yīng)能力的關(guān)鍵配置值

每個(gè)進(jìn)程允許的最大同時(shí)連接數(shù),work_connectins * work_processes =maxConnection;

要注意maxconnections不等同于可相應(yīng)的用戶數(shù)量

因?yàn)橐话阋粋€(gè)瀏覽器會(huì)同時(shí)開兩條鏈接,如果反向代理,nginx到后端連服務(wù)器的鏈接數(shù)也要占用連接數(shù)

所以,做靜態(tài)服務(wù)器時(shí),一般maxClient = work_connectins *   work_processes / 2

做反向代理服務(wù)器時(shí) maxClient = work_connectins * work_processes / 4

這個(gè)值理論上越大越好,但最多可承受多少請(qǐng)求與配件和網(wǎng)絡(luò)相關(guān),也可最大可打開文件,最大可用socket數(shù)量

? 指明使用epoll 或 kquene(*BSD)

? use epoll; epoll是多路復(fù)用IO(I/O Multiplexing)中的一種方式,但是僅用于linux2.6以上內(nèi)核,可以大大提高nginx的性能

要達(dá)到超高負(fù)載下最好的網(wǎng)絡(luò)響應(yīng)能力,還有必要優(yōu)化與網(wǎng)絡(luò)相關(guān)的linux內(nèi)核參數(shù)

worker_connections 1024; 單個(gè)后臺(tái)worker process進(jìn)程的最大并發(fā)鏈接數(shù)

multi_accept on;

}

http區(qū)域

設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持

? http {

? include /etc/nginx/mime.types; 設(shè)定mime類型,類型由mime.type文件定義

? default_type application/octet-stream;

? access_log /var/log/nginx/access.log; 設(shè)定日志格式

? error_log logs/error_log crit;

? access_log logs/access_log main;

關(guān)閉此項(xiàng)可減少IO開銷,但也無(wú)法記錄訪問(wèn)信息,不利用業(yè)務(wù)分析,一般運(yùn)維情況不建議使用

只記錄更為嚴(yán)重的錯(cuò)誤日志,可減少IO壓力

endfile on; sendfile 指令指定 nginx 是否調(diào)用 sendfile 函數(shù)(zero copy 方式)來(lái)輸出文件,對(duì)于普通應(yīng)用,必須設(shè)為 on,如果用來(lái)進(jìn)行下載等應(yīng)用磁盤IO重負(fù)載應(yīng)用,可設(shè)置為 off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的uptime.

cp_nopush on; 啟用內(nèi)核復(fù)制模式,應(yīng)用保持開啟達(dá)到最快的IO效率

cp_nodelay on|off; on禁用Nagle算法

簡(jiǎn)單說(shuō),啟動(dòng)如上兩項(xiàng)配置,會(huì)在數(shù)據(jù)包達(dá)到一定大小后在發(fā)送數(shù)據(jù),這樣會(huì)較少網(wǎng)絡(luò)通信次數(shù),降低阻塞概率,但也會(huì)影響響應(yīng)的及時(shí)性,比較適合于文件下載這類的大數(shù)據(jù)包通信場(chǎng)景

keepalive_timeout 0; HTTP1.1支持持久連接alive

* 降低每個(gè)鏈接的alive時(shí)間可在一定程度上提高可響應(yīng)連接數(shù)量,所以一般可適當(dāng)降低此值

keepalive_timeout 30s; 連接超時(shí)時(shí)間

gzip on; 開啟gzip壓縮,有效降低網(wǎng)絡(luò)流量

gzip_min_length 1000; 過(guò)短的內(nèi)容壓縮效果不佳,壓縮過(guò)程還會(huì)浪費(fèi)系統(tǒng)資源

gzip_comp_level 4; 可選值1~9研所級(jí)別越高壓縮效率越高,但對(duì)系統(tǒng)性能要求越高。

gzip_types text/plain text/css application/json application/x-javascript text/xml 壓縮內(nèi)容類別

open_file_cache max=655350 inactive=20s; 靜態(tài)文件緩存

* 最大緩存數(shù)量
* 文件未使用存活期

open_file_cache_valid 30s; 驗(yàn)證緩存有效期時(shí)間間隔

open_file_cache_min_uses 2; 有效期內(nèi)文件最少使用次數(shù)

設(shè)定請(qǐng)求緩沖

? client_header_buffer_size 1k;

? large_client_header_buffers 4 4k;

? include /etc/nginx/conf.d/*.conf;

? include /etc/nginx/sites-enabled/*;

設(shè)定負(fù)載均衡的服務(wù)器列表
    upstream mysvr { 

        server 192.168.8.1:3128 weight=5; 

        server 192.168.8.2:80  weight=1; 

        server 192.168.8.3:80  weight=6; 

    } 
weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大(本機(jī)上的Squid開啟3128端口)

location表達(dá)式

syntax:location [=|~|~*|^~|@] /uri/ {...} 

分別兩種配置模式,普通字符串匹配,正則匹配

無(wú)開頭引導(dǎo)字符或以=開頭表示普通字符串匹配

以~或~*開頭表示正則匹配,~*表示不區(qū)分大小寫

多個(gè)location時(shí)匹配規(guī)則

總體是先普通后正則,只識(shí)別URI部分,例如請(qǐng)求為/test/1/abc.do? arg=xxx

1.先查找是否有=開頭的精確匹配,及l(fā)ocation =/test/1/abc.do {...}

2.再查找普通匹配,以最大前綴為規(guī)則,如下有兩個(gè)location

location /test/ {...}

location /test/1 {...}

則匹配后一項(xiàng)

3.匹配到一個(gè)普通格式后,搜索并未結(jié)束,而是暫存當(dāng)前結(jié)果,并繼續(xù)在搜索正則模式

4.在所有正則模式location中找到第一個(gè)匹配向后,以此屁配項(xiàng)為最終結(jié)果,所以正則匹配項(xiàng)匹配規(guī)則受定義前后順序影響,但普通匹配不會(huì)

5.如果未找到正則匹配項(xiàng),則以3中緩存的結(jié)果為最終結(jié)果

6.如果一個(gè)匹配都沒有,返回404

location =/ {...} 與 location / {...}的差別

前一個(gè)是精確匹配,只響應(yīng)/請(qǐng)求,所有/xxx類請(qǐng)求不會(huì)以前綴匹配形式匹配到它 ,而后一個(gè)正相反,所有請(qǐng)求必然都是以/開頭,所以沒有其他匹配結(jié)果時(shí)一定會(huì)執(zhí)行到它

location ^~ / {...} ^~意思是非正則,表示匹配到此模式后不再繼續(xù)正則搜索,所有如果這樣配置,相當(dāng)于關(guān)閉了正則匹配功能 ,因?yàn)橐粋€(gè)請(qǐng)求在普通匹配規(guī)則下沒得到其他普通匹配時(shí),最終匹配到這里

默認(rèn)請(qǐng)求

 location / { 
   root   /root;      #定義服務(wù)器的默認(rèn)網(wǎng)站根目錄位置 
   index index.php index.html index.htm;   #定義首頁(yè)索引文件的名稱 
   fastcgi_pass  www.xx.com; 
   fastcgi_param  SCRIPT_FILENAME     $document_root/$fastcgi_script_name; 
   include /etc/nginx/fastcgi_params; 
   } 
定義錯(cuò)誤提示頁(yè)面
  error_page   500 502 503 504 /50x.html;  
   location = /50x.html { 
   root   /root; 
  } 
靜態(tài)文件,nginx自己處理
  location ~ ^/(images|javascript|js|css|flash|media|static)/ { 
  root /var/www/virtual/htdocs; 
  #過(guò)期30天,靜態(tài)文件不怎么更新,過(guò)期可以設(shè)大一點(diǎn),如果頻繁更新,則可以設(shè)置得小一點(diǎn)。 
  expires 30d; 
  } 
PHP 腳本請(qǐng)求全部轉(zhuǎn)發(fā)到 FastCGI處理. 使用FastCGI默認(rèn)配置.
 location ~ .php$ { 
   root  /root; 
   fastcgi_pass 127.0.0.1:9000; 
   fastcgi_index index.php;
   fastcgi_param  SCRIPT_FILENAME  /home/www/www$fastcgi_script_name; 
   include fastcgi_params; 
   } 
設(shè)定查看Nginx狀態(tài)的地址
 location /NginxStatus { 
   stub_status            on; 
   access_log              on; 
   auth_basic              "NginxStatus"; 
   auth_basic_user_file  conf/htpasswd; 
  } 
 #禁止訪問(wèn) .htxxx 文件 
  location ~ /.ht { 
   deny all; 
  } 
 } 
} 

以上是一些基本的配置,使用Nginx最大的好處就是負(fù)載均衡

如果要使用負(fù)載均衡的話,可以修改配置http節(jié)點(diǎn)如下:

設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持

  http { 
   include       /etc/nginx/mime.types;     #設(shè)定mime類型,類型由mime.type文件定義 
   default_type  application/octet-stream;  #設(shè)定日志格式 
   access_log    /var/log/nginx/access.log; 
      #省略
   #設(shè)定負(fù)載均衡的服務(wù)器列表 
  upstream mysvr { 
   #weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大 
   server 192.168.8.1x:3128 weight=5;#本機(jī)上的Squid開啟3128端口 
   server 192.168.8.2x:80  weight=1; 
   server 192.168.8.3x:80  weight=6; 
  upstream mysvr2 { 
   #weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大 
   server 192.168.8.x:80  weight=1; 
   server 192.168.8.x:80  weight=6; 
    } 

第一個(gè)虛擬服務(wù)器

  server { 
   #偵聽192.168.8.x的80端口 
   listen       80; 
   server_name  192.168.8.x; 
    #對(duì)aspx后綴的進(jìn)行負(fù)載均衡請(qǐng)求 
   location ~ .*.aspx$ { 
    root   /root;      #定義服務(wù)器的默認(rèn)網(wǎng)站根目錄位置 
    index index.php index.html index.htm;   #定義首頁(yè)索引文件的名稱。
    proxy_pass  http://mysvr ;#請(qǐng)求轉(zhuǎn)向mysvr 定義的服務(wù)器列表 

以下是一些反向代理的配置可刪除.

  proxy_redirect off; #后端的Web服務(wù)器可以通過(guò)X-Forwarded-For獲取用戶真實(shí)IP
  proxy_set_header Host $host; 
  proxy_set_header X-Real-IP $remote_addr; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  client_max_body_size 10m;    #允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù) 
  client_body_buffer_size 128k;  #緩沖區(qū)代理緩沖用戶端請(qǐng)求的最大字節(jié)數(shù), 
  proxy_connect_timeout 90;  #nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí)) 
  proxy_send_timeout 90;        #后端服務(wù)器數(shù)據(jù)回傳時(shí)間(代理發(fā)送超時(shí)) 
  proxy_read_timeout 90;         #連接成功后,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí)) 
  proxy_buffer_size 4k;             #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小 
  proxy_buffers 4 32k;               #proxy_buffers緩沖區(qū),網(wǎng)頁(yè)平均在32k以下的話,這樣設(shè)置 
  proxy_busy_buffers_size 64k;    #高負(fù)荷下緩沖大小(proxy_buffers*2) 
  proxy_temp_file_write_size 64k;  #設(shè)定緩存文件夾大小,大于這個(gè)值,將從upstream服務(wù)器傳 
   } 
  } 
 }
Nginx平滑升級(jí)

下載Nginx地址:http://nginx.org/download/ngi...
nginx版本:1.8.0
nginx升級(jí)版本:1.12.1
nginx -v #查看當(dāng)前Nginx版本
nginx -V #查看當(dāng)前Nginx編譯參數(shù)


在執(zhí)行編譯時(shí)會(huì)報(bào)錯(cuò)沒有--with-http_spdy_module選項(xiàng)(nginx 1.9.5 已經(jīng)沒有了 --with-http_spdy_module ,取代的是 --with-http_v2_module),查看官方模塊地址:http://nginx.org/en/docs/

開始部署

[root@localhost src]#tar xvf nginx-1.12.1.tar.gz
[root@localhost nginx-1.12.1]# cd nginx-1.12.1
[root@localhost nginx-1.12.1]# ./configure
--user=tdoa 
--group=tdoa 
--prefix=/usr/local/tdoa/nginx
--with-file-aio
--with-http_stub_status_module
--with-http_gzip_static_module
--with-pcre=/root/linux-2015/down/pcre-8.32
--with-pcre-jit
--with-http_v2_module
[root@localhost nginx-1.12.1]# make

執(zhí)行make后,make install無(wú)需執(zhí)行,將現(xiàn)有nginx重命名

[root@localhost objs]# mv /usr/local/tdoa/nginx/sbin/nginx  /usr/local/tdoa/nginx/sbin/nginx.old
[root@localhost objs]# pwd
/usr/local/src/nginx-1.12.1/objs
[root@localhost objs]# cp nginx
nginx    nginx.8  
[root@localhost objs]# cp nginx /usr/local/tdoa/nginx/sbin/
[root@localhost objs]# /usr/local/tdoa/nginx/sbin/nginx -v
nginx version: nginx/1.12.1
[root@localhost objs]# /usr/local/tdoa/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/tdoa/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/tdoa/nginx/conf/nginx.conf test is successful
[root@localhost objs]# /usr/local/tdoa/nginx/sbin/nginx -s reload
[root@localhost objs]# netstat  -tnlp |grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      98457/nginx         
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1680/cupsd          
tcp        0      0 ::1:631                     :::*                        LISTEN      1680/cupsd

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

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

相關(guān)文章

  • 做IT這幾年,我整理了這些干貨想要送給你!

    摘要:資源獲取方式根據(jù)下面的索引,大家可以選擇自己需要的資源,然后在松哥公眾號(hào)牧碼小子后臺(tái)回復(fù)對(duì)應(yīng)的口令,就可以獲取到資源的百度云盤下載地址。公眾號(hào)二維碼如下另外本文會(huì)定期更新,松哥有新資源的時(shí)候會(huì)及時(shí)分享給大家,歡迎各位小伙伴保持關(guān)注。 沒有一條路是容易的,特別是轉(zhuǎn)行計(jì)算機(jī)這條路。 松哥接觸過(guò)很多轉(zhuǎn)行做開發(fā)的小伙伴,我了解到很多轉(zhuǎn)行人的不容易,記得松哥大二時(shí)剛剛決定轉(zhuǎn)行計(jì)算機(jī),完全不知道這...

    王晗 評(píng)論0 收藏0
  • php + nginx 網(wǎng)站并發(fā)壓力測(cè)試及優(yōu)化

    摘要:一測(cè)試工具壓力測(cè)試工具是針對(duì)的性能測(cè)試工具,可以只安裝工具。顯示版本號(hào)并退出。用戶名和密碼由一個(gè)隔開,并以編碼形式發(fā)送。參考并發(fā)數(shù)問(wèn)題思考與工作原理和優(yōu)化漏洞調(diào)大的并發(fā)連接數(shù)調(diào)的等。 一、測(cè)試工具: Apache 壓力測(cè)試工具ab ab是針對(duì)apache的性能測(cè)試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...

    Soarkey 評(píng)論0 收藏0
  • php + nginx 網(wǎng)站并發(fā)壓力測(cè)試及優(yōu)化

    摘要:一測(cè)試工具壓力測(cè)試工具是針對(duì)的性能測(cè)試工具,可以只安裝工具。顯示版本號(hào)并退出。用戶名和密碼由一個(gè)隔開,并以編碼形式發(fā)送。參考并發(fā)數(shù)問(wèn)題思考與工作原理和優(yōu)化漏洞調(diào)大的并發(fā)連接數(shù)調(diào)的等。 一、測(cè)試工具: Apache 壓力測(cè)試工具ab ab是針對(duì)apache的性能測(cè)試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...

    yeyan1996 評(píng)論0 收藏0
  • 前端性能優(yōu)化不完全手冊(cè)

    摘要:負(fù)載均衡就是用來(lái)幫助我們將眾多的客戶端請(qǐng)求合理的分配到各個(gè)服務(wù)器,以達(dá)到服務(wù)端資源的充分利用和更少的請(qǐng)求時(shí)間。如下面的配置復(fù)制代碼這樣可以完美繞過(guò)瀏覽器的同源策略訪問(wèn)的屬于同源訪問(wèn),而對(duì)服務(wù)端轉(zhuǎn)發(fā)的請(qǐng)求不會(huì)觸發(fā)瀏覽器的同源策略。 性能優(yōu)化是一門大學(xué)問(wèn),本文僅對(duì)個(gè)人一些積累知識(shí)的闡述,歡迎下面補(bǔ)充。 拋出一個(gè)問(wèn)題,從輸入url地址欄到所有內(nèi)容顯示到界面上做了哪些事? 1.瀏覽器向 DN...

    ranwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<