in header_common.htm --> -->

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

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

Yahoo!奇摩搜尋
熱搜: 手機A片
Google奇摩搜尋
熱搜: 手機A片
     
查看: 3521|回復: 0
打印 上一主題 下一主題

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

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

以CentOS 之 nginx的設定檔是在 /etc/nginx/nginx.conf- p, J6 I( i1 ~$ Z3 K: c' v# N
一般來說 nginx 配置文件中對優化比較有作用的為以下幾項:# J. v0 c2 E0 Y
worker_processes 8;
" ~8 ^8 V; t( L/ {2 Cnginx 進程數,建議按照 cpu 數目來指定,一般為它的倍數。
8 {. l7 P2 F3 ]) a- X; yworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;* j4 I8 }7 c1 G% Y8 a
為每個進程分配 cpu,上例中將 8 個進程分配到 8 個 cpu,當然可以寫多個,或者將一個進程分配到多個 cpu。3 m: p, ?4 G( w3 l% x3 l
worker_rlimit_nofile 102400;4 \1 g5 M, P4 L
這個指令是指當一個 nginx 進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與 nginx 進程數
! T9 Z" r# v$ p# a1 N8 J相除,但是 nginx 分配請求並不是那麼均勻,所以最好與 ulimit -n 的值保持一致。
9 F+ |% Y/ U  @use epoll;+ k: \! }" d9 T- A+ m
使用 epoll 的 I/O 模型,這個不用說了吧。; B/ z9 R5 O& k) }2 v4 f
worker_connections 102400;5 Y. ~9 M" H, Y, p" V. O
每個進程允許的最多連接數,理論上每台 nginx 服務器的最大連接數為 worker_processes*worker_connections。
# J- c' ?3 `4 ?& u- Fkeepalive_timeout 60;8 ^; R1 F, D! H# V
keepalive 超時時間。, m" m7 L7 T1 D7 h, `
client_header_buffer_size 4k;2 S6 @/ i4 R- F0 c% ^
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過 1k,不過由1 ]3 b! i8 M' |: N3 l* Q
於一般系統分頁都要大於 1k,所以這裡設置為分頁大小。分頁大小可以用命令 getconf PAGESIZE 取得。- N  b; u+ u7 n# y% Y
open_file_cache max=102400 inactive=20s;6 ]6 \, ]7 @1 l" f
這個將為打開文件指定緩存,默認是沒有啟用的,max 指定緩存數量,建議和打開文件數一致,inactive 是指經過多長時' [% }! D! M8 r7 Q7 j4 s
間文件沒被請求後刪除緩存。! b# Q0 p( j' o7 `+ _4 ~6 }
open_file_cache_valid 30s;
) V1 ^0 u; q" B: q" k- ?這個是指多長時間檢查一次緩存的有效信息。
" H3 E, M0 v7 _) \open_file_cache_min_uses 1;
& o7 T, g3 S: y) x* i$ s6 B# z1 Dopen_file_cache 指令中的 inactive 參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打- w1 H: [% t" ~, ?( u- Z; o) b/ p# d- C
開的,如上例,如果有一個文件在 inactive 時間內一次沒被使用,它將被移除。
# B8 u) \# y  x9 r  G- T2 r, j  r# k/ q* K8 i6 d, L
, p' f" x& U' w4 o) {$ Z
關於內核參數的優化:
0 N! q' J+ t6 E. l; i/ L% }; a5 o8 knet.ipv4.tcp_max_tw_buckets = 6000+ _2 m: j! Y$ {
timewait 的數量,默認是 180000。4 D/ k- H) y+ g) o* |
net.ipv4.ip_local_port_range = 1024 65000
. H% k" H2 S9 |: \" ~9 i% B4 z允許系統打開的端口範圍。
6 C# f( S5 r) Inet.ipv4.tcp_tw_recycle = 1
6 Q) p7 [" ^! f# O) h' w' M啟用 timewait 快速回收。
$ z) G4 ~3 p; cnet.ipv4.tcp_tw_reuse = 1: U. y) z" a. D
開啟重用。允許將 TIME-WAIT sockets 重新用於新的 TCP 連接。1 L4 z3 k& @  Q2 e( [! b/ `
net.ipv4.tcp_syncookies = 1% [6 |4 x- A1 h5 m2 Y. _
開啟 SYN Cookies,當出現 SYN 等待隊列溢出時,啟用 cookies 來處理。9 U) z. I# t7 G
net.core.somaxconn = 262144
7 N/ a. Y  q7 ]5 M- J' [1 jweb 應用中 listen 函數的 backlog 默認會給我們內核參數的 net.core.somaxconn 限製到 128,而 nginx 定義的/ t8 W8 C, j9 B0 y+ A  j& i$ {  R# m
NGX_LISTEN_BACKLOG 默認為 511,所以有必要調整這個值。9 ]+ [1 k9 E8 s& w/ q" t9 f
net.core.netdev_max_backlog = 262144
/ H  u* u( |' \# I" ^# u6 c; i每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。: W# C% }- @) P: |$ G
net.ipv4.tcp_max_orphans = 262144
; Z0 N, Q8 q# t. O系統中最多有多少個 TCP 套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,孤兒連接將即刻被復位並打8 j) @4 C0 ?& I0 g7 ^" }
印出警告信息。這個限制僅僅是為了防止簡單的 DoS 攻擊,不能過分依靠它或者人為地減小這個值,更應該增加這個值
1 u+ Y! V, c" @' z/ e- W(如果增加了內存之後)。
7 x# R& ?& t- j9 Anet.ipv4.tcp_max_syn_backlog = 262144
& c: K, \5 ?6 L, y記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對於有 128M 內存的系統而言,缺省值是 1024,小內存的系
. k$ d: P$ x+ G; R統則是 128。9 B; D& s, U$ \3 \- _9 S/ s2 N
net.ipv4.tcp_timestamps = 0
( Y' w4 P' I; i* E6 j時間戳可以避免序列號的捲繞。一個 1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種“異常”的
, V6 F5 X: |' H- m" R數據包。這裡需要將其關掉。
, n- l7 h4 q5 Fnet.ipv4.tcp_synack_retries = 1
+ X* H4 k* f, R1 ]為了打開對端的連接,內核需要發送一個 SYN 並附帶一個回應前面一個 SYN 的 ACK。也就是所謂三次握手中的第二次
9 h+ K$ X/ H6 J握手。這個設置決定了內核放棄連接之前發送 SYN+ACK 包的數量。
( D8 }& ?, ]5 c8 Jnet.ipv4.tcp_syn_retries = 1% c+ ?- b. ?6 Z* x& {
在內核放棄建立連接之前發送 SYN 包的數量。
/ n5 v: M) @! Pnet.ipv4.tcp_fin_timeout = 1
3 ~4 T2 [% P% r4 U0 ~0 ^6 X6 a如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT-2 狀態的時間。對端可以出錯並永遠不關閉連接,甚: j1 E" F' M0 r  }* m
至意外當機。缺省值是 60 秒。2.2 內核的通常值是 180 秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕+ w: N' ?1 U4 f; Q2 f) P
載的 WEB 服務器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT-2 的危險性比 FIN-WAIT-1 要小,因為它最1 z/ w  d: H$ i2 e
多只能吃掉 1.5K 內存,但是它們的生存期長些。
) E! U' \! h5 o# @net.ipv4.tcp_keepalive_time = 309 ~2 I" e" C" a( |2 X+ e/ F
當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度。缺省是 2 小時。
: u& F: F6 o2 `! v6 O. c8 t" V; j  \* B) I9 u3 h! _# W) f6 h
. t0 {: H( O" y5 [
下面貼一個完整的內核優化設置:! x5 u! Z9 A) d3 s
net.ipv4.ip_forward = 0
4 \5 |) l) _+ e' Vnet.ipv4.conf.default.rp_filter = 16 X; G5 R9 N# w( A) X6 T8 Z
net.ipv4.conf.default.accept_source_route = 0
- c. R0 ~+ m, g. p! f1 qkernel.sysrq = 0
, c, c7 E( g( b, s3 a$ r5 S- g) pkernel.core_uses_pid = 1" Q5 |' [! n# U3 Z
net.ipv4.tcp_syncookies = 1, H+ J1 B8 l0 x0 Y' x, W4 M
kernel.msgmnb = 65536+ W) X7 v8 T2 q. y* f
kernel.msgmax = 65536
- b$ [( }0 h9 ]8 Xkernel.shmmax = 68719476736# M. ~8 h3 T- ]& H/ M. q3 ]0 V4 ^
kernel.shmall = 4294967296
/ W) {* I' I$ I( ^, u+ bnet.ipv4.tcp_max_tw_buckets = 6000
. _  c: ^& Y; h. x5 K. qnet.ipv4.tcp_sack = 1
9 q- h& N+ U% k- v9 ?net.ipv4.tcp_window_scaling = 1
$ Y' l. t1 p6 Unet.ipv4.tcp_rmem = 4096 87380 4194304
) c; g! \8 {% ^net.ipv4.tcp_wmem = 4096 16384 4194304& O9 {+ }3 R) e. v/ c- i+ V
net.core.wmem_default = 83886081 u3 V4 _4 |1 ~' i0 z2 T4 c
net.core.rmem_default = 8388608( |( U9 h' r# s$ w  F" `
net.core.rmem_max = 16777216
) ^. ?# q0 l* P% bnet.core.wmem_max = 16777216
0 F9 d' ~0 I; p) z$ o" Tnet.core.netdev_max_backlog = 262144, `* a( D- C! v8 R' Q, U5 a3 l
net.core.somaxconn = 262144
+ F* f# S2 B. ^8 _) ?: Z+ gnet.ipv4.tcp_max_orphans = 3276800
, g+ A5 N4 b$ P7 b* B+ ^1 vnet.ipv4.tcp_max_syn_backlog = 262144  i2 r0 b& O" k  o# t* p
net.ipv4.tcp_timestamps = 09 p2 [" a  \) s9 q7 _% |
net.ipv4.tcp_synack_retries = 1
9 D" h5 j/ D, s* i/ T! anet.ipv4.tcp_syn_retries = 1
! y- v5 ~4 N' ]( o' F! ^net.ipv4.tcp_tw_recycle = 1
9 j  G5 c. G+ q7 |( ~6 D, R. k7 Xnet.ipv4.tcp_tw_reuse = 1
0 ?, u8 {5 j! y( L' m- I# ?) onet.ipv4.tcp_mem = 94500000 915000000 927000000
. }8 ^) h% N2 m! k9 @: Onet.ipv4.tcp_fin_timeout = 1
3 u, b# Q1 a  K9 g2 u+ a2 Bnet.ipv4.tcp_keepalive_time = 307 s4 {' E; H: i  z8 |$ L7 e
net.ipv4.ip_local_port_range = 1024 65000
* ^& ~# e: L" L3 w: z+ }8 h. V! R! F( A& |/ |

/ L; _" n9 N$ ^! n1 L下面是一個簡單的 nginx 配置文件:nginx.conf
3 |2 a- U: r0 q% x+ d" f+ _) auser www www;( ^" E2 y8 W  X
worker_processes 8;
! ^  |( k+ Y$ ]! L1 ]9 s, r" uworker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
! }- Q+ r: ~9 Rerror_log /www/log/nginx_error.log crit;
1 T  @" y! h5 M  o3 g5 B9 Rpid /usr/local/nginx/nginx.pid;% l9 A$ J& ^$ p3 L
worker_rlimit_nofile 204800;
( G: x: B& u8 c4 Z! Tevents
; I3 P+ U* U9 D, V- |0 v{
! m- F8 m3 V1 F5 R- g  use epoll;$ V6 C6 @# y- i" J) \
  worker_connections 204800;
: |3 e& m- R! S/ Y5 H" K" J* ]  b}
: z3 W& z* [' ^. U6 M( E$ B4 Ihttp
2 _. P6 I5 H8 ~+ l( ?0 @{
+ Q$ H6 M2 p2 Einclude mime.types;- F; f5 t' @  V8 @
default_type application/octet-stream;
/ H2 Y! A# Q9 g  ] charset utf-8;, g7 B6 w6 A4 V1 u1 F" U
server_names_hash_bucket_size 128;
& b* Z; D8 t4 Q, ]9 o' o0 S, t client_header_buffer_size 2k;
0 f: F7 ?( ^# W( I large_client_header_buffers 4 4k;0 E: Y% Q1 G- |  }
client_max_body_size 8m;
9 H6 w; _, H& {& g# ]$ Y sendfile on;
; {& n) J0 v$ b: |5 `/ I" h tcp_nopush on;
2 P% C6 b# E& D+ ] keepalive_timeout 60;
5 v" M# l) n6 y# |7 K/ B: K2 l fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
+ a8 P. ]( d2 D7 N: V fastcgi_connect_timeout 300;5 \" v$ l/ W1 X7 G/ u$ K
fastcgi_send_timeout 300;
2 ~' q- e; ~% ?2 ]3 @3 ` fastcgi_read_timeout 300;! S8 e+ m2 h6 k9 S/ X4 a9 n) Y# l$ d
fastcgi_buffer_size 16k;
8 ]* N- j  [( e* k4 E fastcgi_buffers 16 16k;' V: O4 b/ T9 A8 x" t( s& Z
fastcgi_busy_buffers_size 16k;3 L3 c* c- B# E+ ^. G
fastcgi_temp_file_write_size 16k;7 A; Z; k/ R8 \$ p' O+ U/ t- Q
fastcgi_cache TEST;
6 p) O4 S1 c4 \, e fastcgi_cache_valid 200 302 1h;2 W0 D! w& @  h% U% h
fastcgi_cache_valid 301 1d;
& S( N9 v1 m$ T% l7 ^* d$ i fastcgi_cache_valid any 1m;
3 ?3 P0 Z; P, ^7 v* V fastcgi_cache_min_uses 1;! V1 E( \. c  k1 Z% M' ?3 J
fastcgi_cache_use_stale error timeout invalid_header http_500;) b; q4 ^, ?5 B4 Q! P. N: n
open_file_cache max=204800 inactive=20s;( _3 y) t; F# ~$ j$ _; }2 Q6 l) A
open_file_cache_min_uses 1;3 P: p- Y8 O5 k
open_file_cache_valid 30s;! R- M0 ], X+ T8 H$ O! a
tcp_nodelay on;
' d0 e; {& @3 K! W# ]# f9 | gzip on;
1 n0 n5 j7 N" U' F: c gzip_min_length 1k;
1 d  y: i6 ?& {5 J, | gzip_buffers 4 16k;
2 }3 j: @) Y6 Y4 J! A! q4 i gzip_http_version 1.0;! P" _$ ~) f. u4 a4 y9 V
gzip_comp_level 2;3 @0 e$ k* W; A' i! Z0 z9 e9 z+ [
gzip_types text/plain application/x-javascript text/css application/xml;
1 X# N+ q- h# |" W gzip_vary on;
  c5 H. U' C  ], U+ \7 |* n6 z7 c server
6 z% k9 |( V& Y4 V& @' N {: K1 j) ?. `' W0 F, n5 H
listen 8080;" P9 r- y) a7 g. b" E# B
server_name backup.aiju.com;+ Q! \. X2 V) w+ g/ G
index index.php index.htm;
7 B/ f. @7 s" N* h root /www/html/;5 N6 W4 ~9 y# x- \8 [
location /status' X0 x% }# m! e1 ~9 Q1 n8 A6 F
{
0 a- ?4 R8 \. e3 P stub_status on;' a) F$ U6 n- D* w' J  R; A, J: `' I
}& }4 ]9 K5 l. L9 \* G* d) }5 U% j( Q
location ~ .*\.(php|php5)?$
) Z5 S" {- ^( W/ Q9 |4 ?% | {7 d/ q, O9 {1 T5 W, k% T
fastcgi_pass 127.0.0.1:9000;
( [7 u: r8 _; {7 S fastcgi_index index.php;1 Y: y% I# q& z; b' T
include fcgi.conf;4 h% [, k7 A5 ?0 b" @1 A, D
}
- p9 E6 o) b2 q7 D, q" R3 k6 F location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
8 E3 {: p% p6 R$ ]: S {
7 {0 c" U6 L# {3 Y$ L/ w* M: [6 [ expires 30d;& |5 R5 |; A: \3 \2 Q- j
}
# s, k# {& [& f log_format access '$remote_addr - $remote_user [$time_local] "$request" '* A2 N, s5 g& Z* I- [
'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';
5 k, G; ]1 x* U) p% t3 S9 i access_log /www/log/access.log access;# e! G; G2 N& T& i8 F8 ~
}
+ |3 S3 E; {" b- m1 u7 D& a* _}
; x, P4 h( B5 S# ^! c/ u5 n+ D: x" ]3 L2 R8 B
關於 FastCGI 的幾個指令:# @3 k7 L% w/ e) b" I2 Z# ]
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;0 ]5 L1 [# T# [+ ^2 b/ M
這個指令為 FastCGI 緩存指定一個路徑,目錄結構等級,關鍵字區域存儲時間和非活動刪除時間。
, u: s4 z% U& S, a9 m9 t5 g0 Wfastcgi_connect_timeout 300;$ `4 Z- y' V' Y- t& Y" E
指定連接到後端 FastCGI 的超時時間。% h1 D$ c/ ]' m
fastcgi_send_timeout 300;
: M7 Z) V: E1 W$ r' ^$ `向 FastCGI 傳送請求的超時時間,這個值是指已經完成兩次握手後向 FastCGI 傳送請求的超時時間。
" L6 v) G! Q& n( Xfastcgi_read_timeout 300;
# ]8 s# V& h1 v! D接收 FastCGI 應答的超時時間,這個值是指已經完成兩次握手後接收 FastCGI 應答的超時時間。- E( T% |  [/ R1 P$ }" V6 @9 V
fastcgi_buffer_size 16k;
) E6 D  g( x3 _指定讀取 FastCGI 應答第一部分需要用多大的緩衝區,這裡可以設置為 fastcgi_buffers 指令指定的緩衝區大小,上面的
7 ]# @( i  E! J! r6 w  C指令指定它將使用 1 個 16k 的緩衝區去讀取應答的第一部分,即應答頭,其實這個應答頭一般情況下都很小(不會超過  K7 |+ ]  R. ~$ E( Y
1k),但是你如果在 fastcgi_buffers 指令中指定了緩衝區的大小,那麼它也會分配一個 fastcgi_buffers 指定的緩衝區大. n* e: T* |% C" k
小去緩存。
1 o* ?1 c# S) O. F& S& Hfastcgi_buffers 16 16k;4 i3 H1 v% y) F$ S1 T
指定本地需要用多少和多大的緩衝區來緩衝 FastCGI 的應答,如上所示,如果一個 php 腳本所產生的頁面大小為 256k,
. J( N. B: I* ~3 h( a! y則會為其分配 16 個 16k 的緩衝區來緩存,如果大於 256k ,增大於 256k 的部分會緩存到 fastcgi_temp 指定的路徑中,6 K: }" R: K' ^
當然這對服務器負載來說是不明智的方案,因為內存中處理數據速度要快於硬盤,通常這個值的設置應該選擇一個你的. ^, E: W( ?/ j: D8 E& J( M  {& g
站點中的 php 腳本所產生的頁面大小的中間值,比如你的站點大部分腳本所產生的頁面大小為 256k 就可以把這個值設' X9 {$ [  D" k. g& K3 n: _- s
置為 16 16k,或者 4 64k 或者 64 4k,但很顯然,後兩種並不是好的設置方法,因為如果產生的頁面只有 32k,如果用 4
# \' c, `( u$ ~64k 它會分配 1 個 64k 的緩衝區去緩存,而如果使用 64 4k 它會分配 8 個 4k 的緩衝區去緩存,而如果使用 16 16k 則它0 p8 e$ o8 W( l+ W
會分配 2 個 16k 去緩存頁面,這樣看起來似乎更加合理。
5 k3 M0 {( D2 v- Kfastcgi_busy_buffers_size 32k;
6 F- r1 S7 X; |& }: K1 @1 a這個指令我也不知道是做什麼用,只知道默認值是 fastcgi_buffers 的兩倍。( ^1 Y( y( N6 ~& {
fastcgi_temp_file_write_size 32k;
4 B3 v9 |: O5 B; o# {- C# D在寫入 fastcgi_temp_path 時將用多大的數據塊,默認值是 fastcgi_buffers 的兩倍。
1 _3 x. p% v' ^0 x, l/ Lfastcgi_cache TEST
, g6 y/ ~9 J; l$ O* p9 E開啟 FastCGI 緩存並且為其製定一個名稱。個人感覺開啟緩存非常有用,可以有效降低 CPU 負載,並且防止 502 錯誤。, G6 L4 n  v' B
但是這個緩存會引起很多問題,因為它緩存的是動態頁面。具體使用還需根據自己的需求。
/ n1 C2 K! m* R2 R. [3 ufastcgi_cache_valid 200 302 1h;2 u  o5 \/ Q; B- ^
fastcgi_cache_valid 301 1d;
/ L! w& C5 r+ ^2 ?# tfastcgi_cache_valid any 1m;
: t5 U% y* l, p: d5 V* V7 t, l為指定的應答代碼指定緩存時間,如上例中將 200,302 應答緩存一小時,301 應答緩存 1 天,其他為 1 分鐘。" W$ n' \  e( [
fastcgi_cache_min_uses 1;& I2 l: {: F# r
緩存在 fastcgi_cache_path 指令 inactive 參數值時間內的最少使用次數,如上例,如果在 5 分鐘內某文件 1 次也沒有被. i/ q8 b. Q3 o" h/ c
使用,那麼這個文件將被移除。6 G. S2 }* b9 h/ C' j- P
fastcgi_cache_use_stale error timeout invalid_header http_500;
+ u1 s1 H4 D1 k5 Y3 \9 }不知道這個參數的作用,猜想應該是讓 nginx 知道哪些類型的緩存是沒用的。3 V8 P1 B  ?6 G
以上為 nginx 中 FastCGI 相關參數,另外,FastCGI 自身也有一些配置需要進行優化,如果你使用 php-fpm 來管理
# m* U5 `% r) \; O# aFastCGI,可以修改配置文件中的以下值:4 K* g. Q. i. f# i  b5 f
<value name="max_children">60</value>, u2 o( B) }) E% j% n
同時處理的並發請求數,即它將開啟最多 60 個子線程來處理並發連接。
2 N. ^& ^( I; C: s3 L<value name="rlimit_files">102400</value>
5 B( q2 p6 A  O. ^. x最多打開文件數。+ q: R1 E% s7 G7 T8 U1 R* z
<value name="max_requests">204800</value>
3 t; [) H: I& d! p" ?( `7 Z每個進程在重置之前能夠執行的最多請求數。9 Q% R: T3 J& @- L
- Z& t: h: Y: M1 z8 C+ z7 {- i+ o

( |9 T* v) q8 Q- B+ b# z參考資料:: L) U5 M3 A1 U, i! I
http://demo.ckan.org/dataset/daf ... /download/nginx.pdf
3 r* |& m4 o0 x- B# Thttp://blog.chinaunix.net/u3/105004/showart_2087155.html& h* Z  ]% s4 S- f+ [  S5 c
http://nginx.179401.cn/
7 ]* r! ]" {( O; M+ p1 m8 dhttp://blog.s135.com/nginx_php_v5/
8 p/ k5 |* s. q; {8 j- s8 ihttp://xyz.cinc.biz/2015/09/linux-nginx-php-fpm-connection.html, C. s; a8 |. j6 T, n* }
https://www.netroby.com/view/3128
1 X' k  ]) K* ?* U  Jfastcgi 快取:; n& y0 [. ?6 q- [* Z1 h& p
https://www.cnxct.com/several-reminder-in-nginx-fastcgi_cache-and-php-session_cache_limiter/: ~& _9 @: @& p6 B, o2 _
其他:9 j4 j- D( v8 U* O3 f0 C
nginx設定檔內參數的詳細說明: http://nginx.org/en/docs/http/ng ... l#keepalive_timeout
' L) P. ]4 Q  f# dnginx優化:http://www.jianshu.com/p/2184654ba4b2
5 A& R/ o& |" Hgzip壓縮功能以減少網路傳輸檔案大小:http://wenzhixin.net.cn/2013/11/10/server_gzip_on
- J( Z+ H1 j! ]

$ @% ~$ }9 |6 R5 d5 {1 B7 e
% t2 g+ [+ |  q
, p) V+ l# C+ u# E
; T! K6 ^* Z' W6 x8 R
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

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

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

GMT+8, 2024-10-7 23:44 , Processed in 0.059971 second(s), 18 queries .

連絡站長.廣告招商

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

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