in header_common.htm --> -->

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

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

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

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

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

以CentOS 之 nginx的設定檔是在 /etc/nginx/nginx.conf; G, B6 w0 ]6 r' K# ^* I
一般來說 nginx 配置文件中對優化比較有作用的為以下幾項:& r0 {# D3 h$ G% E
worker_processes 8;
  Y$ l: f! V- u0 Z* _) onginx 進程數,建議按照 cpu 數目來指定,一般為它的倍數。
- M, ~( l' F( E) W# `% D4 [4 s3 E. Eworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;5 i6 L2 b1 s) A  o% j7 D1 F
為每個進程分配 cpu,上例中將 8 個進程分配到 8 個 cpu,當然可以寫多個,或者將一個進程分配到多個 cpu。
" _" D! K, X0 m$ W4 L; zworker_rlimit_nofile 102400;) @+ F6 G0 R. w5 H5 T4 Y: I4 f
這個指令是指當一個 nginx 進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與 nginx 進程數
  o7 X1 {2 C( G相除,但是 nginx 分配請求並不是那麼均勻,所以最好與 ulimit -n 的值保持一致。( l: M9 H! r. _# i6 c+ x4 }
use epoll;& Z$ @) q5 f. J3 T: Q4 \. N. ^
使用 epoll 的 I/O 模型,這個不用說了吧。
# B, @7 Q% K, M$ w! }: `7 L; ?worker_connections 102400;
- A, S$ z, m1 V每個進程允許的最多連接數,理論上每台 nginx 服務器的最大連接數為 worker_processes*worker_connections。
( H! h1 ?( g. x) e9 N8 Hkeepalive_timeout 60;
; |: w6 D0 B# d0 V1 a3 P! akeepalive 超時時間。
" Y! W9 H5 O6 X3 lclient_header_buffer_size 4k;
5 [+ r  Z; l  E/ m9 g& t" R2 L客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過 1k,不過由+ I5 Q% v* V. E8 M" Z/ O
於一般系統分頁都要大於 1k,所以這裡設置為分頁大小。分頁大小可以用命令 getconf PAGESIZE 取得。7 V! _& \# f2 \
open_file_cache max=102400 inactive=20s;
) S& ?5 K. e  M8 L# N1 W. X這個將為打開文件指定緩存,默認是沒有啟用的,max 指定緩存數量,建議和打開文件數一致,inactive 是指經過多長時8 A/ |' y0 L% h( i& K
間文件沒被請求後刪除緩存。5 q7 u5 G/ d' c5 _/ U6 W  B, [. r
open_file_cache_valid 30s;* b3 A$ m4 ^4 |; q% q7 k0 V/ v! f
這個是指多長時間檢查一次緩存的有效信息。
5 Y- x9 c( ]% ]# {$ M7 M! Z- a+ Kopen_file_cache_min_uses 1;" _5 R$ e# [4 f6 T: v
open_file_cache 指令中的 inactive 參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打! h" Z* u. [+ {1 z5 K( K
開的,如上例,如果有一個文件在 inactive 時間內一次沒被使用,它將被移除。* H: S) G2 k' `" a- e  l
3 i) l5 P. F  ?' o4 I
0 q  L3 |1 r' z/ D# R2 @* G
關於內核參數的優化:
6 h0 ?9 K$ q0 ], ^net.ipv4.tcp_max_tw_buckets = 60002 H7 F& i: b+ g* u6 Q
timewait 的數量,默認是 180000。
+ N# N/ o. S5 B  d. b1 w$ x8 Gnet.ipv4.ip_local_port_range = 1024 650005 ^) M* E+ w& u
允許系統打開的端口範圍。
- F5 Q! o1 s6 X% z& vnet.ipv4.tcp_tw_recycle = 1
% ^8 v" b3 p/ k* K7 y/ H啟用 timewait 快速回收。9 u" [! x7 N1 M* `, K
net.ipv4.tcp_tw_reuse = 1% @! d8 o) ^# E: a$ a4 |" x$ \! f2 q
開啟重用。允許將 TIME-WAIT sockets 重新用於新的 TCP 連接。
6 q- T5 l' N5 l8 A- d* ynet.ipv4.tcp_syncookies = 1
" x+ }+ q5 g8 F7 k8 E開啟 SYN Cookies,當出現 SYN 等待隊列溢出時,啟用 cookies 來處理。% B1 R  ^! T: R# G9 h
net.core.somaxconn = 262144
, V; G# ?2 B' b9 b* c0 z' Pweb 應用中 listen 函數的 backlog 默認會給我們內核參數的 net.core.somaxconn 限製到 128,而 nginx 定義的
% ^) |' ^3 `) q- X" z3 cNGX_LISTEN_BACKLOG 默認為 511,所以有必要調整這個值。7 Y; O. f3 n3 i- P4 S! A2 u$ J, O* ]
net.core.netdev_max_backlog = 262144, S. }& g: D9 A  K; E7 k" T& i% I
每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。- g6 u% F( j  V2 }- C+ q
net.ipv4.tcp_max_orphans = 262144
' j* _) f7 x) j系統中最多有多少個 TCP 套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,孤兒連接將即刻被復位並打
1 R. m1 \; x1 a  {) ^% D印出警告信息。這個限制僅僅是為了防止簡單的 DoS 攻擊,不能過分依靠它或者人為地減小這個值,更應該增加這個值5 i# h4 L5 g3 k$ q- G. ]
(如果增加了內存之後)。
% E$ a" K: s3 v  Z; U2 t" O2 v" Cnet.ipv4.tcp_max_syn_backlog = 2621443 j' J+ D% u) @0 j4 @1 a4 `
記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對於有 128M 內存的系統而言,缺省值是 1024,小內存的系; q, L- v- J! G, V9 s
統則是 128。
. j" d/ |7 M. i, W, n+ p. \4 ~net.ipv4.tcp_timestamps = 0
6 W) V0 Y( v5 q3 U! [" W6 ?& z% ]時間戳可以避免序列號的捲繞。一個 1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種“異常”的
! z( v  y1 [5 x, z數據包。這裡需要將其關掉。: T+ t7 a! ]4 r& N5 b! Y* |- Y
net.ipv4.tcp_synack_retries = 1+ A$ A# K# Y5 p5 l4 t3 i
為了打開對端的連接,內核需要發送一個 SYN 並附帶一個回應前面一個 SYN 的 ACK。也就是所謂三次握手中的第二次
5 ]7 j$ X' m9 K握手。這個設置決定了內核放棄連接之前發送 SYN+ACK 包的數量。
* j$ J8 h2 x6 A+ znet.ipv4.tcp_syn_retries = 1
! n2 {2 r6 O$ `# q4 y在內核放棄建立連接之前發送 SYN 包的數量。, B! a4 {" k* |( N
net.ipv4.tcp_fin_timeout = 1% l. w4 a( R) O* P% K" w
如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT-2 狀態的時間。對端可以出錯並永遠不關閉連接,甚
: x% i: q+ l9 L" z5 f# Z7 F  k* c, N至意外當機。缺省值是 60 秒。2.2 內核的通常值是 180 秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕. z+ I- M8 _3 @0 p# d
載的 WEB 服務器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT-2 的危險性比 FIN-WAIT-1 要小,因為它最. q9 _- O0 V2 m
多只能吃掉 1.5K 內存,但是它們的生存期長些。$ ^( A- K5 f: y6 A
net.ipv4.tcp_keepalive_time = 302 b0 ]7 ~& {; x8 _6 `; `
當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度。缺省是 2 小時。, Q2 O! U% I  M

3 C5 ?- z( G8 s8 w7 o
" V" j, b! p5 E1 _9 u% q8 \' ?0 B下面貼一個完整的內核優化設置:
1 t2 Z& D2 f6 a( P$ inet.ipv4.ip_forward = 05 t% _/ |& |; ?  F
net.ipv4.conf.default.rp_filter = 1
, u* B; }1 `8 w% k6 h$ x- i. c  Ynet.ipv4.conf.default.accept_source_route = 0
! C1 Z7 @& v" W- ^7 P1 o) O( Tkernel.sysrq = 09 w3 ]! r3 B9 x1 \4 A) |
kernel.core_uses_pid = 1
7 Y- ~1 N- n. t; `4 ~" Hnet.ipv4.tcp_syncookies = 14 \' `3 u. Q: d) f1 {+ i4 q
kernel.msgmnb = 655365 ~. V; u! U% V, y+ |! K# N+ C, }4 p
kernel.msgmax = 65536
, u! q/ v& u' r, B5 n  d% tkernel.shmmax = 68719476736' Z+ z8 F7 ~1 n0 H- |: A1 m+ {
kernel.shmall = 4294967296  I4 ?9 Q! l4 B# n, b9 R( r, T
net.ipv4.tcp_max_tw_buckets = 6000
9 P: o4 x: ~, {" W$ dnet.ipv4.tcp_sack = 15 L9 T$ |% I6 o" Q* `* ^
net.ipv4.tcp_window_scaling = 1
) d: |8 X0 Y# }net.ipv4.tcp_rmem = 4096 87380 4194304# z) W9 q( B' _
net.ipv4.tcp_wmem = 4096 16384 4194304: s- m; b# |; b, u+ L/ g
net.core.wmem_default = 83886083 A4 e0 z/ h" O$ X( N
net.core.rmem_default = 8388608+ j9 J9 m; T$ P) M9 A8 c  Y6 R
net.core.rmem_max = 16777216
1 [4 q) f" G2 ?0 Cnet.core.wmem_max = 16777216  q3 Z/ s: \0 R6 Z( l, E$ f+ A
net.core.netdev_max_backlog = 2621444 c* l$ j9 G) Y3 v$ K3 U5 E$ {
net.core.somaxconn = 262144. N( Y( z+ A9 j
net.ipv4.tcp_max_orphans = 3276800
8 R: m7 a) e7 f- r5 Pnet.ipv4.tcp_max_syn_backlog = 262144/ }; N9 A7 T4 A- F
net.ipv4.tcp_timestamps = 0. ]: c1 f2 \3 E) {
net.ipv4.tcp_synack_retries = 18 [' P+ [2 a' n, }
net.ipv4.tcp_syn_retries = 10 g1 p4 ?* D5 w
net.ipv4.tcp_tw_recycle = 1/ M/ t6 H' a; l/ r
net.ipv4.tcp_tw_reuse = 1
6 I' m! K2 Z' P; Bnet.ipv4.tcp_mem = 94500000 915000000 9270000008 ]" i/ Z- V% u/ @
net.ipv4.tcp_fin_timeout = 1
6 e  n+ f6 D( h6 t4 m/ fnet.ipv4.tcp_keepalive_time = 30
* L5 k! m; w! Y5 e9 Anet.ipv4.ip_local_port_range = 1024 65000
5 l3 G8 |1 h; {; x: ?; T
) i8 X3 y. e  ~% X3 s7 E# N8 L# k5 r  r5 \
下面是一個簡單的 nginx 配置文件:nginx.conf' J# q! e6 m/ }4 M: K
user www www;# I! m4 a8 a. ~' l# w+ z
worker_processes 8;
% ?3 A2 x/ R: B" I; }1 bworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
, u+ d# L, {0 V4 w8 K  [error_log /www/log/nginx_error.log crit;
; T8 G, [( ?9 J+ G5 Bpid /usr/local/nginx/nginx.pid;
2 l! R+ w# }! U1 xworker_rlimit_nofile 204800;+ t. \$ p/ c% O; f% n, ~5 U
events
0 Q& c! }3 m! d7 D; J6 z1 u, k. p{3 ?8 F6 @) v3 z- @9 k4 f" o, v
  use epoll;" K/ I; T7 m1 R: [  i- t
  worker_connections 204800;
1 q% R6 M$ C4 V! K* r}
& b) ~; v2 a5 ~* Z6 A$ s/ Fhttp
' w. v- v7 E  U8 y+ y4 ^{
0 [; T- m  q( k6 t6 j& x- Qinclude mime.types;3 \- V' Z+ J% y& V
default_type application/octet-stream;- g) K5 J5 `- Y6 c- a
charset utf-8;
) N. m# {" J# E8 ]$ \' q0 J server_names_hash_bucket_size 128;7 N! \) Q3 M. I" J  s
client_header_buffer_size 2k;
2 X0 M; S8 m: ~0 O5 m& H large_client_header_buffers 4 4k;. k' t/ O+ z6 C! E. I
client_max_body_size 8m;0 ]( i/ K* B, N, U( x8 E
sendfile on;
( ^8 Z% d: s8 j- D& c tcp_nopush on;1 n6 D% l/ a6 |4 r% F/ b6 e# u9 C: f
keepalive_timeout 60;. e4 f$ I, \4 _
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
% S1 P7 v+ A" v4 L fastcgi_connect_timeout 300;# G/ v* i7 `1 L0 H% V7 R# W0 z
fastcgi_send_timeout 300;4 U8 w. b8 z/ O2 ]
fastcgi_read_timeout 300;
+ [5 _1 m2 v5 r/ P7 m4 C6 U fastcgi_buffer_size 16k;
6 k- B2 Q) Q# r2 R2 h" ?0 F fastcgi_buffers 16 16k;% X4 f3 ?& w6 b, Q' a
fastcgi_busy_buffers_size 16k;
! w* b! ~  j! T fastcgi_temp_file_write_size 16k;
3 P% p8 h: G: } fastcgi_cache TEST;
: X) O9 s, a4 v6 B7 `( W% b fastcgi_cache_valid 200 302 1h;
5 A. t* i% |# v, C, F7 D$ J0 [$ K fastcgi_cache_valid 301 1d;) S2 V  ^, _/ r, s
fastcgi_cache_valid any 1m;% }( X8 k0 O/ X- g: j) ?) Z
fastcgi_cache_min_uses 1;, a% @' Q9 J  {# J6 s
fastcgi_cache_use_stale error timeout invalid_header http_500;6 J0 l  y  j* E# K# z) c- Y' j- [
open_file_cache max=204800 inactive=20s;
" r! |( P9 w/ ^1 ^. Q% | open_file_cache_min_uses 1;8 U$ o/ e# E3 o- }/ f* b* h
open_file_cache_valid 30s;
* o" E. Z( T, d: F2 |9 g" C tcp_nodelay on;
% r0 u$ P( g, I gzip on;
. t! x$ l/ r, J3 _* q4 L& C3 n0 M gzip_min_length 1k;  d% x- Y/ C+ u5 w
gzip_buffers 4 16k;
# a) {+ Y4 L1 ^; {; c gzip_http_version 1.0;
7 N* t! ]& V: b9 D, i gzip_comp_level 2;
+ q8 B  R* v; ]% `1 _ gzip_types text/plain application/x-javascript text/css application/xml;
! p5 V: r/ v7 h8 |# ] gzip_vary on;* [. A1 N) X9 {+ m. q
server1 K% d; X8 E+ O3 _* g+ R; j6 Y
{
! g& W/ T8 {: \- J+ Z listen 8080;
% u3 W. z8 K, Y1 [( C+ ~9 R$ D server_name backup.aiju.com;
1 H3 z3 I' H' f8 U  n. |6 y index index.php index.htm;
: C- E8 ?- `: c7 I$ V% a root /www/html/;; N, Q; n3 n3 ~5 m+ b+ V  y
location /status
% C- k) F8 ~4 J. w) f {
  f. n- N. U$ p" g! ~ stub_status on;2 G( _3 Q6 u  C  \" z
}) f) j/ k7 i* F4 d$ L' u) @) H
location ~ .*\.(php|php5)?$
" X4 a& \0 B! x3 R1 h {
3 t) M  A0 J% c* V9 h5 m fastcgi_pass 127.0.0.1:9000;0 G. s6 }! b! R
fastcgi_index index.php;
- T% H, d  s2 B6 z1 X include fcgi.conf;
+ k. }' u& w' j; E/ x3 | }
+ v6 D8 ~: P6 ^/ M location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$/ F7 B* j+ J" B* W' w
{5 m; H3 K; {+ q/ L$ b
expires 30d;
. Q, m- c0 S! Y! ?1 b }3 m. q! F) a5 P- B7 x* T/ h
log_format access '$remote_addr - $remote_user [$time_local] "$request" '* ~- F0 m+ N' _3 Q0 w
'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';
+ b7 ?' l$ {2 _% a access_log /www/log/access.log access;' G0 A+ I4 K7 [1 Y/ [1 I
}; y$ q' z8 v# M) n- y) R* |2 e
}  g' y; t. q- k5 v1 W' }6 @
& G3 o9 \) Q9 m6 B
關於 FastCGI 的幾個指令:
! \# Y0 `5 ~! A& K$ ~4 w( Z, hfastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;( T4 n1 Q0 i$ h, F( k0 c
這個指令為 FastCGI 緩存指定一個路徑,目錄結構等級,關鍵字區域存儲時間和非活動刪除時間。5 l0 F- G% s& z& T- ~
fastcgi_connect_timeout 300;: p2 F; i1 K8 P) \
指定連接到後端 FastCGI 的超時時間。
& Y0 t  M* b+ t' X- xfastcgi_send_timeout 300;4 a7 p8 q8 R0 ?
向 FastCGI 傳送請求的超時時間,這個值是指已經完成兩次握手後向 FastCGI 傳送請求的超時時間。
$ d3 T9 ~% I4 `" K8 t) g* [# Tfastcgi_read_timeout 300;
) U" t# H2 Q9 l! h0 O0 A. m接收 FastCGI 應答的超時時間,這個值是指已經完成兩次握手後接收 FastCGI 應答的超時時間。
! U1 d" a! v5 r* F: b( [fastcgi_buffer_size 16k;
# i% {! z" F5 h5 j4 C指定讀取 FastCGI 應答第一部分需要用多大的緩衝區,這裡可以設置為 fastcgi_buffers 指令指定的緩衝區大小,上面的
: Y8 p4 Z: ?' r/ T- S& r+ g/ l/ s, A指令指定它將使用 1 個 16k 的緩衝區去讀取應答的第一部分,即應答頭,其實這個應答頭一般情況下都很小(不會超過1 Y1 j, M0 ~! Y0 H# `5 m
1k),但是你如果在 fastcgi_buffers 指令中指定了緩衝區的大小,那麼它也會分配一個 fastcgi_buffers 指定的緩衝區大
: J3 }0 M  {; p  ~+ S6 d2 J小去緩存。
1 p" i, }+ }2 a! Afastcgi_buffers 16 16k;
! J% T; T# M# _% D( f; {; O指定本地需要用多少和多大的緩衝區來緩衝 FastCGI 的應答,如上所示,如果一個 php 腳本所產生的頁面大小為 256k,  w9 R. x2 R' U& k$ l0 r
則會為其分配 16 個 16k 的緩衝區來緩存,如果大於 256k ,增大於 256k 的部分會緩存到 fastcgi_temp 指定的路徑中,3 A9 b9 c8 R- K3 O- o- K
當然這對服務器負載來說是不明智的方案,因為內存中處理數據速度要快於硬盤,通常這個值的設置應該選擇一個你的
# V' D+ f/ [# y) G) g( M1 }站點中的 php 腳本所產生的頁面大小的中間值,比如你的站點大部分腳本所產生的頁面大小為 256k 就可以把這個值設
) y9 p+ \% Q% T& m置為 16 16k,或者 4 64k 或者 64 4k,但很顯然,後兩種並不是好的設置方法,因為如果產生的頁面只有 32k,如果用 4
/ \6 J* e9 u$ a* |9 t# N; I  \64k 它會分配 1 個 64k 的緩衝區去緩存,而如果使用 64 4k 它會分配 8 個 4k 的緩衝區去緩存,而如果使用 16 16k 則它# ?1 F0 T% V0 w1 \" y4 ?
會分配 2 個 16k 去緩存頁面,這樣看起來似乎更加合理。7 h5 Q. r& ~8 p1 j7 l
fastcgi_busy_buffers_size 32k;
+ r2 |5 w: W! l% R這個指令我也不知道是做什麼用,只知道默認值是 fastcgi_buffers 的兩倍。
2 [1 H  R# L' j, Ofastcgi_temp_file_write_size 32k;
2 v  r' b8 I/ W: p2 B在寫入 fastcgi_temp_path 時將用多大的數據塊,默認值是 fastcgi_buffers 的兩倍。
  L2 V" U- H$ s! s, ]fastcgi_cache TEST% S, }' }; r- A( W
開啟 FastCGI 緩存並且為其製定一個名稱。個人感覺開啟緩存非常有用,可以有效降低 CPU 負載,並且防止 502 錯誤。$ W. S4 N7 A2 r# M
但是這個緩存會引起很多問題,因為它緩存的是動態頁面。具體使用還需根據自己的需求。
3 i5 S' p- M  ?" Vfastcgi_cache_valid 200 302 1h;
) u/ P  c4 U3 V4 L4 Q8 sfastcgi_cache_valid 301 1d;1 J3 B* X* v; b% ~3 \# S
fastcgi_cache_valid any 1m;
4 h9 O; @0 {. m  G9 }為指定的應答代碼指定緩存時間,如上例中將 200,302 應答緩存一小時,301 應答緩存 1 天,其他為 1 分鐘。
5 m* U4 q1 t3 d+ R  H/ |+ T' D- Nfastcgi_cache_min_uses 1;4 j2 S% u  A' ?  `0 @/ x5 [3 |
緩存在 fastcgi_cache_path 指令 inactive 參數值時間內的最少使用次數,如上例,如果在 5 分鐘內某文件 1 次也沒有被
1 A8 R" p3 g% [$ B( x7 F使用,那麼這個文件將被移除。
* c* T" q/ L  f3 H: Tfastcgi_cache_use_stale error timeout invalid_header http_500;- g5 m! U5 D9 L4 e, n
不知道這個參數的作用,猜想應該是讓 nginx 知道哪些類型的緩存是沒用的。
) j% x5 u  m7 o4 ~以上為 nginx 中 FastCGI 相關參數,另外,FastCGI 自身也有一些配置需要進行優化,如果你使用 php-fpm 來管理
8 o, k" \7 A" G; y9 G; BFastCGI,可以修改配置文件中的以下值:. w+ O- N7 a( f" V: V- q
<value name="max_children">60</value>: C/ {% B1 V0 q; s
同時處理的並發請求數,即它將開啟最多 60 個子線程來處理並發連接。% E( O6 o: s% q+ n0 h  r" E: T
<value name="rlimit_files">102400</value>5 \0 n6 A: \4 u  Y# K% q
最多打開文件數。
' f1 w* V/ m) |/ F" n8 m<value name="max_requests">204800</value>
- r$ l) I! ]" |) Q每個進程在重置之前能夠執行的最多請求數。
1 ^9 _7 X0 R' q& d/ i
: O2 ?7 X2 a7 c2 C+ `+ a
) f6 V6 z) V$ u. U! |參考資料:6 |3 m. L1 o* X- e
http://demo.ckan.org/dataset/daf ... /download/nginx.pdf* @7 f) V; Q$ D" X! t
http://blog.chinaunix.net/u3/105004/showart_2087155.html4 y9 F$ I3 j2 V+ T+ u
http://nginx.179401.cn/+ ^# w9 C. u7 v& E0 Z
http://blog.s135.com/nginx_php_v5/
+ ^8 _# n* L4 r3 Ghttp://xyz.cinc.biz/2015/09/linux-nginx-php-fpm-connection.html; {7 ^% Y8 Z( D6 q
https://www.netroby.com/view/3128, q& `0 V) Z) K% T1 w# d! X/ ?, _% p
fastcgi 快取:
; \9 X+ Q" c# @# C5 h( f! b
https://www.cnxct.com/several-reminder-in-nginx-fastcgi_cache-and-php-session_cache_limiter/; Y  l, R( u0 p4 o# c6 I
其他:
2 A  U; c3 W( j# c1 y1 \7 F. }nginx設定檔內參數的詳細說明: http://nginx.org/en/docs/http/ng ... l#keepalive_timeout
! `) G: J/ o- y- U+ C* z+ D) Vnginx優化:http://www.jianshu.com/p/2184654ba4b2
9 N- s0 i, _3 |) fgzip壓縮功能以減少網路傳輸檔案大小:http://wenzhixin.net.cn/2013/11/10/server_gzip_on
: D8 h  d+ q# Z6 y/ J* B' N/ ~

- K* H7 ?$ e6 F  {' W! u( E' e% ~+ k2 x4 d. O4 }: c
/ w8 i2 U8 w, |8 v* t) H
/ K( i; ~1 R7 C
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

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

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

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

連絡站長.廣告招商

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

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