in header_common.htm --> -->

52AV手機A片王|52AV.ONE

 找回密碼
 立即註冊
快捷導航

     
查看: 3686|回復: 0
打印 上一主題 下一主題

[nginx|php-fpm] nginx優化(針對nginx.conf)

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2016-10-1 22:08:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

以CentOS 之 nginx的設定檔是在 /etc/nginx/nginx.conf
, H; |, I: F0 X# C7 R; D1 ^4 D一般來說 nginx 配置文件中對優化比較有作用的為以下幾項:* S0 b6 x8 d6 c2 U; H+ ?
worker_processes 8;7 o% L, D; }1 t/ H
nginx 進程數,建議按照 cpu 數目來指定,一般為它的倍數。
4 r4 t7 D" ]7 Nworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;" z% ^6 t- h% s8 z
為每個進程分配 cpu,上例中將 8 個進程分配到 8 個 cpu,當然可以寫多個,或者將一個進程分配到多個 cpu。
/ ?$ B, P2 a2 f. @* _8 aworker_rlimit_nofile 102400;
8 R. ]2 V" C' ?" d- P7 s這個指令是指當一個 nginx 進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與 nginx 進程數
  Q$ [- ~6 j5 m相除,但是 nginx 分配請求並不是那麼均勻,所以最好與 ulimit -n 的值保持一致。
5 Z, |* v( R- g9 z2 Euse epoll;
4 k$ Y* i# J  e0 i& Q+ V; Z使用 epoll 的 I/O 模型,這個不用說了吧。3 o- ?9 `% l8 V
worker_connections 102400;
  x; H; o# u% c; S6 s每個進程允許的最多連接數,理論上每台 nginx 服務器的最大連接數為 worker_processes*worker_connections。
5 ]7 F. Q) n) ^* r7 Xkeepalive_timeout 60;: \) w5 w0 U# X
keepalive 超時時間。( F- \( w, D5 z
client_header_buffer_size 4k;3 s* a/ k: u$ E$ M: d! [
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過 1k,不過由
# d4 F" N, q3 X' ]) ~* W) B4 ~於一般系統分頁都要大於 1k,所以這裡設置為分頁大小。分頁大小可以用命令 getconf PAGESIZE 取得。
: _* ^4 B% ]. d8 G. w5 }open_file_cache max=102400 inactive=20s;! _' ]1 K0 {, O0 Q" r7 K& b: q! t- Q  }
這個將為打開文件指定緩存,默認是沒有啟用的,max 指定緩存數量,建議和打開文件數一致,inactive 是指經過多長時
4 \# ]: C, X: y: D: ?( d# r間文件沒被請求後刪除緩存。
5 d: S4 z1 G) M0 Q/ Copen_file_cache_valid 30s;
& p7 X2 T- d: L4 A( `這個是指多長時間檢查一次緩存的有效信息。
- B0 K$ i& U; M. Topen_file_cache_min_uses 1;
+ j& q* j8 |$ k/ iopen_file_cache 指令中的 inactive 參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打7 Y! Z* M8 R3 I( L7 W) f, u; B
開的,如上例,如果有一個文件在 inactive 時間內一次沒被使用,它將被移除。0 X1 S8 [, L1 h4 E
' n/ R$ A) u# J, }9 [& l) c6 h  p/ B
4 V$ X9 f+ U; w4 h* P" |! h
關於內核參數的優化:9 }% @0 ^5 p. f
net.ipv4.tcp_max_tw_buckets = 6000% G2 _; Q( F. K) }7 [* \4 g( m  E
timewait 的數量,默認是 180000。
! u% r! _5 i* I" _* Rnet.ipv4.ip_local_port_range = 1024 65000$ b+ x- i( l+ [. E2 H
允許系統打開的端口範圍。
$ Q6 i! ^$ L# j5 P: Nnet.ipv4.tcp_tw_recycle = 1' @2 V  Y* X& M6 `1 R0 g! ~
啟用 timewait 快速回收。5 w  c- C! l- x
net.ipv4.tcp_tw_reuse = 1
; ^& Z8 N3 Q% s2 Y8 t5 m開啟重用。允許將 TIME-WAIT sockets 重新用於新的 TCP 連接。4 u- a  v& q# |. y2 U
net.ipv4.tcp_syncookies = 1) U: B: b# J: r$ {" H) \+ u
開啟 SYN Cookies,當出現 SYN 等待隊列溢出時,啟用 cookies 來處理。) Y. F. {0 t; B
net.core.somaxconn = 262144$ j1 K$ j7 u" U' _0 Q! F1 w* Q2 |
web 應用中 listen 函數的 backlog 默認會給我們內核參數的 net.core.somaxconn 限製到 128,而 nginx 定義的
' l; P" F3 P7 T* _. D& u! sNGX_LISTEN_BACKLOG 默認為 511,所以有必要調整這個值。. W2 \: q! S% B$ X1 q* H) E5 u4 D
net.core.netdev_max_backlog = 262144, E- j1 R. s7 b  P9 S4 l
每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
$ R, Q3 k. p  D0 I) }net.ipv4.tcp_max_orphans = 2621443 Y* Q2 L& i, U9 N9 h' t0 c: q0 e
系統中最多有多少個 TCP 套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,孤兒連接將即刻被復位並打
, [& ~7 k9 |6 z. E* E6 J印出警告信息。這個限制僅僅是為了防止簡單的 DoS 攻擊,不能過分依靠它或者人為地減小這個值,更應該增加這個值( P3 {7 C( u8 G6 b4 K; V* S
(如果增加了內存之後)。* S! f3 s& }0 g$ S0 m! l) ?8 M
net.ipv4.tcp_max_syn_backlog = 262144
! k# P1 f1 {) v  |0 _5 Z記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對於有 128M 內存的系統而言,缺省值是 1024,小內存的系
$ L/ ?2 E1 T2 K- H& F統則是 128。# _8 Q6 P: a' z/ [4 K. q1 M% [
net.ipv4.tcp_timestamps = 0
7 Z; S' L; k7 `  T( u" X4 G' _時間戳可以避免序列號的捲繞。一個 1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種“異常”的
* y8 o" ~; }* H" ~2 U1 P數據包。這裡需要將其關掉。6 f" D  b0 K- w. A
net.ipv4.tcp_synack_retries = 18 S& D# X$ S5 i0 b0 I
為了打開對端的連接,內核需要發送一個 SYN 並附帶一個回應前面一個 SYN 的 ACK。也就是所謂三次握手中的第二次2 ^# I2 V0 u& E5 Z
握手。這個設置決定了內核放棄連接之前發送 SYN+ACK 包的數量。
& ^! ?1 p" |9 ]1 S4 O$ q2 Mnet.ipv4.tcp_syn_retries = 1
6 Q, E* `% T1 B在內核放棄建立連接之前發送 SYN 包的數量。7 c) g' `. Z# H* p: _
net.ipv4.tcp_fin_timeout = 1
# V5 F, M- K( w3 C9 o如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT-2 狀態的時間。對端可以出錯並永遠不關閉連接,甚
: [# [1 {2 w! t5 b! ~/ X至意外當機。缺省值是 60 秒。2.2 內核的通常值是 180 秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕/ t/ K- t  I( `9 W* s
載的 WEB 服務器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT-2 的危險性比 FIN-WAIT-1 要小,因為它最
8 d% w! I$ a0 B' z' l8 J1 y多只能吃掉 1.5K 內存,但是它們的生存期長些。
3 ], ?* i7 A7 G4 T0 p; I# Jnet.ipv4.tcp_keepalive_time = 300 w0 H% n* Y2 i6 r
當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度。缺省是 2 小時。+ n. l! D" P* C6 P
% K, S1 d& t; C+ i
. q2 E* F& U; @9 S4 O$ S
下面貼一個完整的內核優化設置:
' e' k) s+ Q( R4 P8 q: I$ N. qnet.ipv4.ip_forward = 0
( Z3 W. R( [5 K& S. G: M9 [7 inet.ipv4.conf.default.rp_filter = 1" N: `  M& l& e) ~7 _1 _
net.ipv4.conf.default.accept_source_route = 09 H9 W& h% d2 J6 E
kernel.sysrq = 0
6 f# l) C6 h2 s* D! Fkernel.core_uses_pid = 1
9 r+ H& Z! G# R2 tnet.ipv4.tcp_syncookies = 1
$ G* p' [" U; l* n8 g, }kernel.msgmnb = 65536
2 ?' d0 V; v! ykernel.msgmax = 65536
- U4 Q3 I; q' V4 E( Pkernel.shmmax = 68719476736
. {. U9 u8 Y. r& R* O( Skernel.shmall = 42949672963 I& Z, u$ V  `
net.ipv4.tcp_max_tw_buckets = 6000# |( {% c! {; k  q# o
net.ipv4.tcp_sack = 19 M1 u5 E. p4 `% |1 @* `, @0 O
net.ipv4.tcp_window_scaling = 1
& L% \7 g- i1 K- ^net.ipv4.tcp_rmem = 4096 87380 4194304
* c2 U  G( F0 w4 \  B2 @$ ?& D; B; \net.ipv4.tcp_wmem = 4096 16384 4194304& A9 p5 o/ @+ S
net.core.wmem_default = 8388608
- M8 Y& @2 X+ e4 g8 s2 ~$ @, pnet.core.rmem_default = 8388608
# p/ L6 Y4 M2 M8 ~  _4 x2 Y6 \3 Vnet.core.rmem_max = 16777216
: d9 O0 M0 A% t7 S, O, onet.core.wmem_max = 16777216
1 f1 A8 Z6 j7 W5 h$ }2 i6 xnet.core.netdev_max_backlog = 2621442 f1 ^5 v6 f& O
net.core.somaxconn = 262144
: X0 K( D& p) D+ S- {% vnet.ipv4.tcp_max_orphans = 3276800+ {$ _, f4 j7 P: j1 G9 m
net.ipv4.tcp_max_syn_backlog = 262144
6 S& t! S  F8 z# enet.ipv4.tcp_timestamps = 0
9 X1 |# r* x' w* p% M) @) s( Unet.ipv4.tcp_synack_retries = 1
- n8 r& ^. i' p6 m1 E7 Pnet.ipv4.tcp_syn_retries = 1; p4 t' E+ i7 |. \* U
net.ipv4.tcp_tw_recycle = 15 n5 o8 x/ u% O5 B! y+ o7 [
net.ipv4.tcp_tw_reuse = 1
; U) o! X1 {' W' Z6 ~8 Pnet.ipv4.tcp_mem = 94500000 915000000 927000000% B; }( t# }+ m  L& n
net.ipv4.tcp_fin_timeout = 1
; w; h2 A3 v/ @4 F; _net.ipv4.tcp_keepalive_time = 30# _6 p' h4 J& P; U* F9 i' ]- ^7 A
net.ipv4.ip_local_port_range = 1024 65000
% W4 I2 C5 \. q7 G& C: G& i9 k
* L3 H6 P$ O% x, E4 D, d1 ?
9 y6 }' Q# W5 K% l1 ?  u5 a下面是一個簡單的 nginx 配置文件:nginx.conf+ B# q# z9 Z9 @! p7 g9 y
user www www;
/ K- u4 ^7 _% X0 s) i' ~. Y, |0 Mworker_processes 8;
8 w9 u$ W. z$ V, [worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
0 c1 _; Y7 X  E# P# U2 r: l& w5 Nerror_log /www/log/nginx_error.log crit;
1 L7 F+ d% }) \$ n: epid /usr/local/nginx/nginx.pid;0 Y5 j! z: Q2 e
worker_rlimit_nofile 204800;! D4 |+ F0 t4 R! V& l7 w5 ]
events
* {! ?6 f. \# V3 s( q{+ I. }! O2 z' u2 v# k$ A
  use epoll;! \7 U, `# j7 T6 D  W/ Y+ m8 d: b$ z
  worker_connections 204800;
+ K: R0 v- ]2 x4 W}! r) ?, T! M. K' {* N$ P+ m# S
http: u! S: B9 j( h, H; y! t8 `7 p
{2 ]3 M- |3 p* e0 g& P4 C
include mime.types;/ [" Y: s$ z0 a! X1 \5 W
default_type application/octet-stream;% R& @1 ]& z5 n/ e. `! b
charset utf-8;
; \4 z' G( V9 V server_names_hash_bucket_size 128;, h# j7 D) ?5 h7 C) U9 f# M7 E0 y1 ]2 {% R. e
client_header_buffer_size 2k;, I( H3 j2 ]+ W2 a
large_client_header_buffers 4 4k;
" O: a5 s6 c* i client_max_body_size 8m;4 ?% F- d* |0 _; j
sendfile on;) r. `! g7 P, R+ c! Z" I1 v8 Y
tcp_nopush on;5 k6 S% X6 ?* w
keepalive_timeout 60;
2 _% o/ g; D7 A* T- G fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
% U( l7 j3 }: [5 P8 J3 q) q fastcgi_connect_timeout 300;
9 S1 B- @# j$ b fastcgi_send_timeout 300;  Z4 D8 o- z& d0 y1 G5 A; F
fastcgi_read_timeout 300;
! n1 f8 Q8 d8 H6 ~ fastcgi_buffer_size 16k;2 i( }3 _4 ^0 N: `* I
fastcgi_buffers 16 16k;
4 t" o/ m& q: L2 `& m fastcgi_busy_buffers_size 16k;
0 P8 X2 n# o- x. O* [! O fastcgi_temp_file_write_size 16k;) E5 Q+ D0 _7 f4 N$ U9 T
fastcgi_cache TEST;
/ J; f' |0 Q% S# i fastcgi_cache_valid 200 302 1h;
& L' G/ r* u: o, M7 y fastcgi_cache_valid 301 1d;# X* ]$ D% I/ g3 n4 `  K& }8 R
fastcgi_cache_valid any 1m;
/ ]7 v7 e4 g" A7 M fastcgi_cache_min_uses 1;
5 f4 ]. ?) t/ Z' z# b fastcgi_cache_use_stale error timeout invalid_header http_500;3 i9 q' |1 c. Y3 s  t9 E' v" [
open_file_cache max=204800 inactive=20s;
' e* s  ?- X) x" }; x open_file_cache_min_uses 1;
  j2 o" j6 P0 d8 i) ` open_file_cache_valid 30s;
0 z" L7 e) {% {: }8 S! R8 R6 R% d tcp_nodelay on;: u0 ]. H; J4 `. B3 W
gzip on;0 _% P. ]; m* @: `
gzip_min_length 1k;6 w4 w3 q8 z1 g2 h
gzip_buffers 4 16k;
* w/ F) @% e: f$ | gzip_http_version 1.0;% R$ U, r  Q* O" ^( u/ H! H  r$ L( R
gzip_comp_level 2;0 _3 J# H& T$ s4 Z# E" U$ U
gzip_types text/plain application/x-javascript text/css application/xml;
+ Y9 j! Z# O1 v! I2 U& ] gzip_vary on;
. @( h/ A1 u( j& b8 V0 w0 m2 P! ^ server
) x; M  ^8 T! N {
4 {7 ^6 f  e& G  }- m/ J6 ~ listen 8080;
! N0 j. {6 A& l2 v1 q; j server_name backup.aiju.com;' q0 }3 a/ G0 q/ ]0 ~/ L
index index.php index.htm;
2 X+ p1 |* i5 b+ b$ j( z8 Q4 D8 `+ Z root /www/html/;
3 `/ l- ~& o7 j location /status
& w0 J- e# ^& t: j) y) ]  Y {% d# P: E/ B. B# F' e
stub_status on;
- N6 X" b) X. r, \3 X }
9 q' \0 K% M8 C, C" g1 ~1 P location ~ .*\.(php|php5)?$
+ |$ k4 ?" |2 x {& R" {8 W* s6 \5 V7 ]; s3 \
fastcgi_pass 127.0.0.1:9000;3 W) t$ p; N; ~3 v
fastcgi_index index.php;
$ \8 q; u$ a% U  Y include fcgi.conf;! X6 g, o, t+ n
}: E3 x; _3 B6 V6 S# b
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$0 o( g: |7 W/ g1 w0 ~
{) Q1 V$ B4 |( Z+ s5 r) s' A6 r* B4 J
expires 30d;
' _  E- F, ?" _& J( M( G4 { }
& F2 J; W# ?3 R+ ~3 C, M8 v log_format access '$remote_addr - $remote_user [$time_local] "$request" '% i# p7 ~2 R2 q9 A% z+ [/ W+ W  R
'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';
9 o! q4 U) W9 \' _# R: W' H access_log /www/log/access.log access;
& _9 T* m& G. P" x0 L$ U }
% H0 H4 e$ ^# u- [3 T# k& y1 h}( Y) H& P7 [! t: i5 ]' `
9 a( O: m( L+ \9 i
關於 FastCGI 的幾個指令:
8 l$ v' H2 Q, ^' efastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
8 ~- z$ {+ f: Y) {1 E" \這個指令為 FastCGI 緩存指定一個路徑,目錄結構等級,關鍵字區域存儲時間和非活動刪除時間。; B: P7 M& {  q% N3 F1 g
fastcgi_connect_timeout 300;6 J3 u! |1 n' ?
指定連接到後端 FastCGI 的超時時間。% l, H" Q0 D# s) ~. M+ k7 E5 h3 O7 [" Z
fastcgi_send_timeout 300;
# }! B% |$ L) H! w向 FastCGI 傳送請求的超時時間,這個值是指已經完成兩次握手後向 FastCGI 傳送請求的超時時間。
) W$ l- w4 d( `6 A/ E3 Zfastcgi_read_timeout 300;
9 ~& P6 b( O7 v2 \. m接收 FastCGI 應答的超時時間,這個值是指已經完成兩次握手後接收 FastCGI 應答的超時時間。
, R- J4 J) p; U! _2 X4 F" f% j- Sfastcgi_buffer_size 16k;
( q1 U) n' [$ J) B& H5 c指定讀取 FastCGI 應答第一部分需要用多大的緩衝區,這裡可以設置為 fastcgi_buffers 指令指定的緩衝區大小,上面的, U& l/ o' @) N- E: W
指令指定它將使用 1 個 16k 的緩衝區去讀取應答的第一部分,即應答頭,其實這個應答頭一般情況下都很小(不會超過
3 |4 J( g) S( t' g' B; o# U1k),但是你如果在 fastcgi_buffers 指令中指定了緩衝區的大小,那麼它也會分配一個 fastcgi_buffers 指定的緩衝區大
+ T* D8 F) t' Y, e6 ], u# Z5 }& d- H小去緩存。
8 o0 d( d: M" M1 c! Y4 _9 afastcgi_buffers 16 16k;
5 N8 f+ |$ e0 M指定本地需要用多少和多大的緩衝區來緩衝 FastCGI 的應答,如上所示,如果一個 php 腳本所產生的頁面大小為 256k,
; {& v9 g) ]7 w1 I# a則會為其分配 16 個 16k 的緩衝區來緩存,如果大於 256k ,增大於 256k 的部分會緩存到 fastcgi_temp 指定的路徑中,
' y4 i, [/ }7 @- W$ u當然這對服務器負載來說是不明智的方案,因為內存中處理數據速度要快於硬盤,通常這個值的設置應該選擇一個你的
6 ?) e7 ]; }" |站點中的 php 腳本所產生的頁面大小的中間值,比如你的站點大部分腳本所產生的頁面大小為 256k 就可以把這個值設' B9 P* A! Z9 q+ ?5 U
置為 16 16k,或者 4 64k 或者 64 4k,但很顯然,後兩種並不是好的設置方法,因為如果產生的頁面只有 32k,如果用 4
5 n5 }* P9 w! t$ y64k 它會分配 1 個 64k 的緩衝區去緩存,而如果使用 64 4k 它會分配 8 個 4k 的緩衝區去緩存,而如果使用 16 16k 則它
8 Z$ t  d# `) C: e5 j% D會分配 2 個 16k 去緩存頁面,這樣看起來似乎更加合理。2 u7 \" a- b& H7 ^+ ]# j
fastcgi_busy_buffers_size 32k;
0 v6 Z# d- h3 ]6 T' {這個指令我也不知道是做什麼用,只知道默認值是 fastcgi_buffers 的兩倍。$ {2 Z, T$ _4 @" |+ B
fastcgi_temp_file_write_size 32k;
! Q0 f8 Z% t' t' t. @+ K4 f- j在寫入 fastcgi_temp_path 時將用多大的數據塊,默認值是 fastcgi_buffers 的兩倍。
# A7 G) I: W) y" J' y4 hfastcgi_cache TEST1 W4 a! Y* j# {% ^6 e2 f  D* R4 Z
開啟 FastCGI 緩存並且為其製定一個名稱。個人感覺開啟緩存非常有用,可以有效降低 CPU 負載,並且防止 502 錯誤。
  C( U" N' h# t但是這個緩存會引起很多問題,因為它緩存的是動態頁面。具體使用還需根據自己的需求。" q' E9 ]: D6 [' {, S0 k. d
fastcgi_cache_valid 200 302 1h;
0 j1 V, l& ^2 Y  a. Yfastcgi_cache_valid 301 1d;
9 B* ~4 }& c+ {) ?4 afastcgi_cache_valid any 1m;! E# L( E6 S0 E/ v/ L( A
為指定的應答代碼指定緩存時間,如上例中將 200,302 應答緩存一小時,301 應答緩存 1 天,其他為 1 分鐘。
/ ?0 H/ C; m5 s4 X5 g+ Kfastcgi_cache_min_uses 1;1 W7 i. j4 v0 V
緩存在 fastcgi_cache_path 指令 inactive 參數值時間內的最少使用次數,如上例,如果在 5 分鐘內某文件 1 次也沒有被
: U4 O4 q  k$ ~/ d/ e- `$ S使用,那麼這個文件將被移除。- B2 m* q7 k* E( _
fastcgi_cache_use_stale error timeout invalid_header http_500;5 Z. h7 h9 U2 Q( H6 O4 d
不知道這個參數的作用,猜想應該是讓 nginx 知道哪些類型的緩存是沒用的。$ ]) U- b+ f4 A( T  M: f$ ]6 q
以上為 nginx 中 FastCGI 相關參數,另外,FastCGI 自身也有一些配置需要進行優化,如果你使用 php-fpm 來管理1 }9 Q. _, u7 ?
FastCGI,可以修改配置文件中的以下值:
) I( ^8 z0 W/ f3 y& l: B  d$ H9 _<value name="max_children">60</value># ~! m# |8 w" ]7 t& n, G5 B0 R2 e$ [
同時處理的並發請求數,即它將開啟最多 60 個子線程來處理並發連接。
5 D6 ~  D# r* W$ E( X<value name="rlimit_files">102400</value>' N9 T, ~# t! H, q  {6 e
最多打開文件數。# f: Y  M* b$ S: o7 L* p
<value name="max_requests">204800</value>
: \+ r0 w- n. W. \0 f5 P, a每個進程在重置之前能夠執行的最多請求數。9 l+ _9 T/ |1 R( `, V& {0 ^

8 a8 d1 G: ?+ p/ F' _4 K; Y- g7 X
參考資料:
" n$ }; J8 E' u. ~7 }, Ghttp://demo.ckan.org/dataset/daf ... /download/nginx.pdf% R* m( g* _5 p  p' q" D
http://blog.chinaunix.net/u3/105004/showart_2087155.html" C9 b  ?3 ~- x. F
http://nginx.179401.cn/
+ j# E$ P# F+ z! B+ Mhttp://blog.s135.com/nginx_php_v5/  F, E; H; G+ m) q' v
http://xyz.cinc.biz/2015/09/linux-nginx-php-fpm-connection.html
. o5 S$ Z, N7 Q0 Z4 L6 Hhttps://www.netroby.com/view/31281 `( p* v% y& j  M( D9 m; G
fastcgi 快取:
3 R( z, n" R' b. X9 t6 q& \$ O
https://www.cnxct.com/several-reminder-in-nginx-fastcgi_cache-and-php-session_cache_limiter/
( Y" W; G8 l7 D/ U! B# }& a/ [
其他:
# A  U1 X% p0 Z; Enginx設定檔內參數的詳細說明: http://nginx.org/en/docs/http/ng ... l#keepalive_timeout
( P8 L$ L  p( t6 Q5 Onginx優化:http://www.jianshu.com/p/2184654ba4b26 o- _0 i5 g# |& n6 w
gzip壓縮功能以減少網路傳輸檔案大小:http://wenzhixin.net.cn/2013/11/10/server_gzip_on
# ]; ?8 C) j$ @6 k& `6 H
( p+ o( K9 L/ t  F7 }7 t5 T9 M
4 p2 |. S( N; {4 g' t# \& \

5 n7 z2 Z. }9 I" R$ v' N4 h9 B% R; z) ]/ r( `& Z
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板|52AV手機A片王

GMT+8, 2024-12-29 16:19 , Processed in 0.068288 second(s), 20 queries .

連絡站長.廣告招商

[email protected] | QQ:2405733034     since 2015-01

裸聊妹 快速回復 返回頂部 返回列表