in header_common.htm --> -->

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

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

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

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

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

以CentOS 之 nginx的設定檔是在 /etc/nginx/nginx.conf
! [  L( v9 g3 V7 R5 e一般來說 nginx 配置文件中對優化比較有作用的為以下幾項:
9 D1 c1 z3 [: d7 n$ q& a" Gworker_processes 8;
0 d- U* F8 [" l( B! O( b" Onginx 進程數,建議按照 cpu 數目來指定,一般為它的倍數。! l. x% ^% o1 z2 ^
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
7 N* A, _. ?* W! _, A為每個進程分配 cpu,上例中將 8 個進程分配到 8 個 cpu,當然可以寫多個,或者將一個進程分配到多個 cpu。
4 ~5 ?& O: o5 X- `5 f5 E1 aworker_rlimit_nofile 102400;& B1 n6 {4 x  F: B
這個指令是指當一個 nginx 進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與 nginx 進程數
1 V* z- d. X* j相除,但是 nginx 分配請求並不是那麼均勻,所以最好與 ulimit -n 的值保持一致。! [/ m1 O$ q* q/ \' V! z' E) X
use epoll;+ L- I% @9 |" {& u8 a+ F/ e6 G
使用 epoll 的 I/O 模型,這個不用說了吧。* a6 l: o* T0 c
worker_connections 102400;
! b7 n, q+ l$ z每個進程允許的最多連接數,理論上每台 nginx 服務器的最大連接數為 worker_processes*worker_connections。
) `: H, d. s% Bkeepalive_timeout 60;
2 \* E5 f% Y3 `$ X; R7 H) u8 Ikeepalive 超時時間。% E5 t" V3 L( r6 D7 |% P
client_header_buffer_size 4k;) l! w8 p: v  L& S+ C
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過 1k,不過由6 g# t+ y% u8 G* x7 p
於一般系統分頁都要大於 1k,所以這裡設置為分頁大小。分頁大小可以用命令 getconf PAGESIZE 取得。* W& t! A( Z7 h+ k: Z
open_file_cache max=102400 inactive=20s;
, m. `9 S& H, ^0 }這個將為打開文件指定緩存,默認是沒有啟用的,max 指定緩存數量,建議和打開文件數一致,inactive 是指經過多長時; |; @* p) Q, N' L
間文件沒被請求後刪除緩存。
6 k9 r; K4 B7 p" vopen_file_cache_valid 30s;
1 H' ^9 w  }# f這個是指多長時間檢查一次緩存的有效信息。) x( s' J; g8 c6 u7 O
open_file_cache_min_uses 1;) U8 x) s. |# f$ R7 N! b9 l
open_file_cache 指令中的 inactive 參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打
, J- ^6 v) f; g, Q. ~開的,如上例,如果有一個文件在 inactive 時間內一次沒被使用,它將被移除。
) m& h  _+ B* Q* y2 j* @: e4 T
. b. [& P+ ^! E- T/ ^4 Y, ~/ l% o) K, }: G1 c) K7 U
關於內核參數的優化:: }, e+ x9 P( V( w4 q1 K
net.ipv4.tcp_max_tw_buckets = 6000/ v& R* N. c& l$ d3 }! q7 V, U/ H$ S
timewait 的數量,默認是 180000。- I! N' q6 m' n7 Z
net.ipv4.ip_local_port_range = 1024 65000% f1 b1 D8 h, ?0 _* A" W. H. Y
允許系統打開的端口範圍。
) C$ E4 Q8 ]: Qnet.ipv4.tcp_tw_recycle = 1
3 k$ j0 w3 {6 n1 s% k4 i啟用 timewait 快速回收。
, B6 a9 g* x/ C4 A1 e0 \5 v( Znet.ipv4.tcp_tw_reuse = 1& n1 M! ?1 w/ p/ J# ~  A$ T  Q6 ^
開啟重用。允許將 TIME-WAIT sockets 重新用於新的 TCP 連接。
$ Z  C8 C4 ^  cnet.ipv4.tcp_syncookies = 1
$ T! f% W2 M4 s' N& m開啟 SYN Cookies,當出現 SYN 等待隊列溢出時,啟用 cookies 來處理。
: X( n5 c: X$ i# G! [$ y) knet.core.somaxconn = 262144
8 S! ?6 T3 ?2 z$ E7 y1 d8 }5 Fweb 應用中 listen 函數的 backlog 默認會給我們內核參數的 net.core.somaxconn 限製到 128,而 nginx 定義的
8 j2 B/ V& U  Q1 c/ DNGX_LISTEN_BACKLOG 默認為 511,所以有必要調整這個值。
! y: z/ u( ^5 H; x$ ]net.core.netdev_max_backlog = 262144; @) c, ]# a, R  m: G; X* P
每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
4 N5 k5 {+ X* N7 T9 D) Snet.ipv4.tcp_max_orphans = 262144
# K6 I+ @, {# v7 W5 \. Y系統中最多有多少個 TCP 套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,孤兒連接將即刻被復位並打, s8 e4 k0 C) t% s4 C
印出警告信息。這個限制僅僅是為了防止簡單的 DoS 攻擊,不能過分依靠它或者人為地減小這個值,更應該增加這個值
( X$ x0 V# S3 k" U8 e(如果增加了內存之後)。
' ]  s& @8 Q" ]7 c" nnet.ipv4.tcp_max_syn_backlog = 262144
# Q) X8 k5 o) P. p0 ^6 o, o$ _記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對於有 128M 內存的系統而言,缺省值是 1024,小內存的系
5 W  D! N, w3 E8 D, X' z統則是 128。
3 r& u- o+ i& x% C6 t. tnet.ipv4.tcp_timestamps = 0. e* P4 c! F; t5 T' F/ V# X1 r
時間戳可以避免序列號的捲繞。一個 1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種“異常”的1 u  }8 O( K* F( @9 X. R8 g  V! F
數據包。這裡需要將其關掉。
5 |1 \# M8 E/ A( _+ w- znet.ipv4.tcp_synack_retries = 12 n1 H: Y5 [* v# G( X2 M
為了打開對端的連接,內核需要發送一個 SYN 並附帶一個回應前面一個 SYN 的 ACK。也就是所謂三次握手中的第二次5 I$ A' v% N0 ?7 Z" x2 I# K% v
握手。這個設置決定了內核放棄連接之前發送 SYN+ACK 包的數量。. \7 A9 s+ V0 I* H. m6 r6 w8 p
net.ipv4.tcp_syn_retries = 1
# A# q4 \2 t: h% W# c# S在內核放棄建立連接之前發送 SYN 包的數量。
7 f8 _7 F1 r4 z9 I, V6 X+ bnet.ipv4.tcp_fin_timeout = 1" X7 h8 T2 C+ j3 @, `* a( l8 M
如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT-2 狀態的時間。對端可以出錯並永遠不關閉連接,甚9 }6 V, C" c4 G: D" C9 ?
至意外當機。缺省值是 60 秒。2.2 內核的通常值是 180 秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕8 W- K; ]$ S8 q% W
載的 WEB 服務器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT-2 的危險性比 FIN-WAIT-1 要小,因為它最
. {  w; B! x( F$ Y) C多只能吃掉 1.5K 內存,但是它們的生存期長些。1 @" m$ u: n0 r" ]. l" |
net.ipv4.tcp_keepalive_time = 30- L& Z$ q' n9 Q. T$ N+ J: d" V
當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度。缺省是 2 小時。  ]  T4 n  M3 ^0 V6 L
, X) a6 @' p7 q6 w! ^9 P

' x. u+ R2 X. `7 i) ^下面貼一個完整的內核優化設置:0 J+ j0 L% C9 R' O% L" o+ S
net.ipv4.ip_forward = 0
! a( d8 A8 @3 n' X8 ~- L5 Onet.ipv4.conf.default.rp_filter = 14 Z/ _0 Y5 ~3 p+ [: i- A
net.ipv4.conf.default.accept_source_route = 0, t  G" v9 F! t4 y* d" z" D. Z
kernel.sysrq = 0
" ~1 f) P( G$ w; K+ Hkernel.core_uses_pid = 1. ^$ Z0 J9 L4 G  D4 i
net.ipv4.tcp_syncookies = 12 P3 j6 n( f  D. Y. ]: g1 x2 a4 p
kernel.msgmnb = 65536
$ ~4 H3 q" H& [( J( t& o) xkernel.msgmax = 65536+ V2 ~7 S3 Q' e
kernel.shmmax = 68719476736/ [7 m5 u' F  s" p3 R/ ~" R0 w! g
kernel.shmall = 4294967296
6 d$ }: O0 k  J) T6 A' _net.ipv4.tcp_max_tw_buckets = 60000 a7 s& q1 [; F) w$ ]1 [8 f5 c7 F
net.ipv4.tcp_sack = 1
3 j4 _) O& h8 snet.ipv4.tcp_window_scaling = 1
9 y3 K( T$ h# V- x! Dnet.ipv4.tcp_rmem = 4096 87380 4194304
$ T/ Y, _/ N: {& w, L# Bnet.ipv4.tcp_wmem = 4096 16384 4194304
3 U( g$ m- z) o4 Q: Unet.core.wmem_default = 8388608, s/ X/ J! H8 L: w
net.core.rmem_default = 8388608
4 V# |; k! A1 J8 |+ I! gnet.core.rmem_max = 167772169 I0 y! ~9 D/ ]: E7 g, i
net.core.wmem_max = 16777216
. T# z* _2 N) s6 O9 Pnet.core.netdev_max_backlog = 262144) }* a  b$ D3 m
net.core.somaxconn = 262144  d& r4 v$ Q  b
net.ipv4.tcp_max_orphans = 3276800
* M0 d  F8 E% Z) W$ B9 Snet.ipv4.tcp_max_syn_backlog = 262144
; i& }0 F4 z- O1 O+ c, Ynet.ipv4.tcp_timestamps = 04 M9 T9 j) q$ N
net.ipv4.tcp_synack_retries = 1; y, Q7 q: ~2 i( F6 h0 O
net.ipv4.tcp_syn_retries = 1
( A- K7 ^& C& p. B# cnet.ipv4.tcp_tw_recycle = 1
4 ~) \4 f3 N; h- y9 s8 N" Dnet.ipv4.tcp_tw_reuse = 10 Y, I$ u* o" U( R
net.ipv4.tcp_mem = 94500000 915000000 927000000
  @' e* x: K, N9 l' cnet.ipv4.tcp_fin_timeout = 13 M+ Q/ d4 W; m5 N8 }
net.ipv4.tcp_keepalive_time = 307 r! V+ G! ?: q7 k) _  B0 k
net.ipv4.ip_local_port_range = 1024 65000! {3 y) ~7 K& V

0 Q$ o$ G5 q0 B
2 B3 y2 Q) l9 L- d( w; d下面是一個簡單的 nginx 配置文件:nginx.conf
. P9 V! n; T. A' d. Juser www www;7 t# ~! J$ j* f* i5 Y  e
worker_processes 8;
: ~% Y6 U/ o. Sworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
& f+ f6 W1 i7 eerror_log /www/log/nginx_error.log crit;# t* c2 ?: Y' g
pid /usr/local/nginx/nginx.pid;
! C% f: U, L( sworker_rlimit_nofile 204800;
+ i! M9 B/ m/ Ievents2 P7 J- r" B; P9 |
{' d$ U$ |8 ~  T$ @# K: Q
  use epoll;6 ?: _6 k9 B4 M2 D  l8 J6 H( Z
  worker_connections 204800;
% e8 @% r. I4 y  _& s! K}
* g- ?% n. {) q0 jhttp
1 ]/ Q, u: s3 V( ?! Z6 {{
/ H1 w& G9 x( S$ ]% C' Finclude mime.types;
7 z, j- {. ^( ?; B default_type application/octet-stream;
4 `* I, H1 c% { charset utf-8;
, a7 E& N7 n2 M+ R* p server_names_hash_bucket_size 128;
/ U6 }- U/ |) b0 S client_header_buffer_size 2k;
7 Y; G( n( C& c. T9 M' \# u- ]0 q large_client_header_buffers 4 4k;. E4 `6 v. i3 H
client_max_body_size 8m;
1 M/ k. H. w6 n0 a sendfile on;/ n* @- A6 I8 o3 @
tcp_nopush on;
$ n+ ]! e1 y& ]4 ^0 u keepalive_timeout 60;, }% S1 J- I- P! z, \3 y; r' P
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;( d  x$ ^  d1 h. d  @2 R; W; p4 \
fastcgi_connect_timeout 300;% `: S: L, W% B1 A& A
fastcgi_send_timeout 300;6 ?0 o$ K3 ^! \( q5 w6 _1 X
fastcgi_read_timeout 300;
" J0 u4 d. r" b% G fastcgi_buffer_size 16k;
1 d* p8 Z" v8 Q/ z fastcgi_buffers 16 16k;
, p$ [4 M/ C7 d; i fastcgi_busy_buffers_size 16k;( m6 N# A9 T$ q
fastcgi_temp_file_write_size 16k;
2 W% `+ d# \1 m  F fastcgi_cache TEST;) ^' y) `! [$ J8 k# u9 g5 R
fastcgi_cache_valid 200 302 1h;
4 b0 A  w( w* I fastcgi_cache_valid 301 1d;
4 J6 d+ {; Z* P+ k' X fastcgi_cache_valid any 1m;
: ?( y% t/ B# R4 M" O2 W, B+ ]7 v fastcgi_cache_min_uses 1;3 G, E* b) C: l
fastcgi_cache_use_stale error timeout invalid_header http_500;
+ M+ y5 [, d/ R) Z open_file_cache max=204800 inactive=20s;5 d9 c$ }& ^" `6 h, u/ ?
open_file_cache_min_uses 1;* d  U) a0 L4 o5 C4 B2 S
open_file_cache_valid 30s;
1 n' g3 @+ K5 v tcp_nodelay on;' h" J1 o1 T, F" P' x7 V" z
gzip on;
" I% H+ L$ b4 Q, ?& p6 r' T gzip_min_length 1k;( |( r/ X& j9 G7 S3 L1 ^- N
gzip_buffers 4 16k;& n7 {; O) a2 Q" T/ B
gzip_http_version 1.0;; W+ d; A" ^1 d: F
gzip_comp_level 2;' X9 W% N$ i* h# i
gzip_types text/plain application/x-javascript text/css application/xml;
' ^4 t, r+ A! X) w3 X4 r8 ~ gzip_vary on;, l) S( s$ B; e% I/ D
server$ ~4 |& \# E- S0 [
{
1 h+ o; Q1 Y- V4 \ listen 8080;$ x0 T! K1 @( H0 T; j1 j
server_name backup.aiju.com;
+ }/ X; Z; h9 z, G% s index index.php index.htm;
% s( ^1 y( p2 c5 [" u root /www/html/;
/ w4 N+ V3 E  d  O( d, Y7 c location /status" c  ~* E. h$ Y; F) W. A
{
! R6 y7 o( o% } stub_status on;- Q: \- E1 H/ O' I8 @# T
}
* \- ?+ F" R7 e$ d/ Q5 y location ~ .*\.(php|php5)?$+ S1 z! u% ^' j- A
{4 J; B7 N. Z  h2 [
fastcgi_pass 127.0.0.1:9000;% i5 r4 ~% U% @! V  ~
fastcgi_index index.php;
6 R. g+ {4 ]+ O# Q9 K7 K include fcgi.conf;
6 q2 g6 D% B0 i: w }5 _! f/ H# I1 }/ _
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
. m! t8 K" p1 x& w* O+ }( i8 v {
6 F. h, ^' ^# V, m expires 30d;1 B" c' F, `' ^) x
}
4 {" x0 H# f8 ~ log_format access '$remote_addr - $remote_user [$time_local] "$request" '
3 E7 b. ^# w3 D, ~. t( j1 W '$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';0 H7 K# \* _; h: Y
access_log /www/log/access.log access;
+ e' Q5 @* W& w4 |( m! I }% n+ J4 E* y: K0 F# B% H
}
' E/ K$ ^1 G7 ~" c) F) |3 H  Q1 I1 J0 t' P) A: J: E
關於 FastCGI 的幾個指令:
8 `9 T5 x& C1 M+ _- wfastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;8 Q$ `+ ^0 b+ V5 l! c7 i* j
這個指令為 FastCGI 緩存指定一個路徑,目錄結構等級,關鍵字區域存儲時間和非活動刪除時間。
$ f" D7 t% X7 X, n0 Efastcgi_connect_timeout 300;
4 l7 q) C$ f: i" R- v" ?* k1 u6 R指定連接到後端 FastCGI 的超時時間。
" B  R+ r; P1 f! Cfastcgi_send_timeout 300;
2 U  J  F" R  ^& l1 v向 FastCGI 傳送請求的超時時間,這個值是指已經完成兩次握手後向 FastCGI 傳送請求的超時時間。
" y, G+ t4 V$ }0 Y7 C! d7 xfastcgi_read_timeout 300;
% \+ q+ e) f7 c4 Q4 w$ K接收 FastCGI 應答的超時時間,這個值是指已經完成兩次握手後接收 FastCGI 應答的超時時間。
) m* E* J7 r- ifastcgi_buffer_size 16k;; s+ i' I$ j( J& \/ V2 u
指定讀取 FastCGI 應答第一部分需要用多大的緩衝區,這裡可以設置為 fastcgi_buffers 指令指定的緩衝區大小,上面的. m6 }+ a& o6 `7 G# ^- `
指令指定它將使用 1 個 16k 的緩衝區去讀取應答的第一部分,即應答頭,其實這個應答頭一般情況下都很小(不會超過
* g) D2 |& ~5 D5 w- w" q4 }1k),但是你如果在 fastcgi_buffers 指令中指定了緩衝區的大小,那麼它也會分配一個 fastcgi_buffers 指定的緩衝區大
% Q- h9 u  P7 p" y' _# ]$ R5 {小去緩存。
/ }4 C: C7 Q' K/ e# N' |" rfastcgi_buffers 16 16k;" G3 V+ M- W# X
指定本地需要用多少和多大的緩衝區來緩衝 FastCGI 的應答,如上所示,如果一個 php 腳本所產生的頁面大小為 256k,
7 r" I. |8 X) M+ ~則會為其分配 16 個 16k 的緩衝區來緩存,如果大於 256k ,增大於 256k 的部分會緩存到 fastcgi_temp 指定的路徑中,
! v( I7 U9 A. c, }3 p, T, @& G當然這對服務器負載來說是不明智的方案,因為內存中處理數據速度要快於硬盤,通常這個值的設置應該選擇一個你的+ @3 a6 g# a" z  p9 U3 U
站點中的 php 腳本所產生的頁面大小的中間值,比如你的站點大部分腳本所產生的頁面大小為 256k 就可以把這個值設
3 a4 M0 L5 V8 Q, s7 z置為 16 16k,或者 4 64k 或者 64 4k,但很顯然,後兩種並不是好的設置方法,因為如果產生的頁面只有 32k,如果用 4
! B7 ^6 S* p9 l8 p! W; U. x64k 它會分配 1 個 64k 的緩衝區去緩存,而如果使用 64 4k 它會分配 8 個 4k 的緩衝區去緩存,而如果使用 16 16k 則它) i& o- {  n& F- Y, T5 q$ L* S
會分配 2 個 16k 去緩存頁面,這樣看起來似乎更加合理。4 p2 b( v5 J! U: p' h. L: u, u
fastcgi_busy_buffers_size 32k;$ l% n. `/ V9 [" b7 ]0 C$ w- {
這個指令我也不知道是做什麼用,只知道默認值是 fastcgi_buffers 的兩倍。- k7 N, _7 N. o% ^+ ^/ V8 x
fastcgi_temp_file_write_size 32k;
' r/ U3 S6 v7 h/ Y4 c) b' h% @& O# C在寫入 fastcgi_temp_path 時將用多大的數據塊,默認值是 fastcgi_buffers 的兩倍。
7 P- ]  c( [) g! K" u# rfastcgi_cache TEST
- U6 h/ a1 @( `2 Q開啟 FastCGI 緩存並且為其製定一個名稱。個人感覺開啟緩存非常有用,可以有效降低 CPU 負載,並且防止 502 錯誤。; F+ Y1 E, L' L# j% E- B: B
但是這個緩存會引起很多問題,因為它緩存的是動態頁面。具體使用還需根據自己的需求。
( f% R$ k9 M+ \6 F- x4 _8 Kfastcgi_cache_valid 200 302 1h;3 a5 r4 Q# C4 G3 \$ {; R
fastcgi_cache_valid 301 1d;" W8 {8 C$ C7 k* k# P
fastcgi_cache_valid any 1m;! m( h# s4 O+ S* E2 e
為指定的應答代碼指定緩存時間,如上例中將 200,302 應答緩存一小時,301 應答緩存 1 天,其他為 1 分鐘。, l1 V/ @4 Q! F% d' _4 V% }
fastcgi_cache_min_uses 1;
+ R/ o. Y6 w$ h5 X. D; T緩存在 fastcgi_cache_path 指令 inactive 參數值時間內的最少使用次數,如上例,如果在 5 分鐘內某文件 1 次也沒有被
- M0 W  A8 w( \使用,那麼這個文件將被移除。- P9 F5 i3 t# o5 ]5 G
fastcgi_cache_use_stale error timeout invalid_header http_500;
6 h! e( U* ]: M! R- Q9 j不知道這個參數的作用,猜想應該是讓 nginx 知道哪些類型的緩存是沒用的。
4 b5 Y8 l+ _6 f& l, m0 _+ X以上為 nginx 中 FastCGI 相關參數,另外,FastCGI 自身也有一些配置需要進行優化,如果你使用 php-fpm 來管理
0 B5 s+ G* B9 V  |5 wFastCGI,可以修改配置文件中的以下值:
9 Y& B5 ]% w6 k2 w<value name="max_children">60</value>7 `4 p; X' `1 r' D
同時處理的並發請求數,即它將開啟最多 60 個子線程來處理並發連接。: s0 N/ B4 m  s: T6 {) ?% Q
<value name="rlimit_files">102400</value>
% X; C/ F$ b/ d) B# p最多打開文件數。2 o, B/ @* \$ p4 c' q+ _
<value name="max_requests">204800</value>, F0 |9 ?8 f2 U8 ^
每個進程在重置之前能夠執行的最多請求數。
; I, o0 l0 I. Z5 X: b( W1 W) B+ ^. k
. d, l0 a  E9 s. h4 T/ h* T/ b: _/ g: d/ A5 A5 y: B+ I0 R) C3 l
參考資料:4 b7 o4 I: b. r( M+ J" m& O" F4 l
http://demo.ckan.org/dataset/daf ... /download/nginx.pdf& F0 c8 z3 F5 ?" r3 A- C/ M# u
http://blog.chinaunix.net/u3/105004/showart_2087155.html. w3 O. I) o1 _- k& Q6 o& n
http://nginx.179401.cn/
$ h0 w7 _5 x  w/ t9 |- |http://blog.s135.com/nginx_php_v5/
; a2 B7 ~! b8 ahttp://xyz.cinc.biz/2015/09/linux-nginx-php-fpm-connection.html' p& X. ]6 L' F9 P. v; ^
https://www.netroby.com/view/3128
# G- v9 S+ q5 z. _- Bfastcgi 快取:
* ^- b) \2 C; W& z" s) P& K, l
https://www.cnxct.com/several-reminder-in-nginx-fastcgi_cache-and-php-session_cache_limiter/: j* T/ j8 f$ V, _* E
其他:% p* g1 u7 O2 _  n  q; V2 f
nginx設定檔內參數的詳細說明: http://nginx.org/en/docs/http/ng ... l#keepalive_timeout$ \# P+ `2 C) v1 ?4 Q5 {' o7 ?7 v# F' B
nginx優化:http://www.jianshu.com/p/2184654ba4b2
7 S) _/ ^: w$ m/ ogzip壓縮功能以減少網路傳輸檔案大小:http://wenzhixin.net.cn/2013/11/10/server_gzip_on
0 h( K" V0 S9 L1 D) h6 b
6 t; ~  s( C8 s0 \0 [
& P0 ]$ b# a; L. y0 E' t

3 L+ i" W; e) r$ l9 i0 w8 z" M% p
, A) |2 \3 k' h6 y
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

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

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

GMT+8, 2024-12-29 16:30 , Processed in 0.073470 second(s), 18 queries .

連絡站長.廣告招商

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

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