최고의 성능 을 위 한 Nginx - 블 로그 - 버 러 온라인

7587 단어
설정:
1
2 cp /etc/nginx/nginx .conf /etc/nginx/nginx .conf.orig      vim /etc/nginx/nginx .conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 # This number should be, at maximum, the number of CPU cores on your system. # (since nginx doesn't benefit from more than one worker per CPU.) # CPU , 1 Nginx 。 worker_processes 24;
  # Number of file descriptors used for Nginx. This is set in the OS with 'ulimit -n 200000' # or using /etc/security/limits.conf # Nginx , "ulimit -n 200000", /etc/security/limits.conf 。 worker_rlimit_nofile 200000;
  # only log critical errors # critical error_log /var/log/nginx/error .log crit
  # Determines how many clients will be served by each worker process. # (Max clients = worker_connections * worker_processes) # "Max clients" is also limited by the number of socket connections available on the system (~64k) # Nginx ,( = * ) # socket ( 64K ) worker_connections 4000;
  # essential for linux, optmized to serve many clients with each thread # Linux , 。 use epoll;
  # Accept as many connections as possible, after nginx gets notification about a new connection. # May flood worker_connections, if that option is set too low. # , worker_connections , 。 multi_accept on;
  # Caches information about open FDs, freqently accessed files. # Changing this setting, in my environment, brought performance up from 560k req/sec, to 904k req/sec. # I recommend using some varient of these options, though not the specific values listed below. # FDs( / ) # , , 560k / 904k / 。 # , 。 open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;
  # Buffer log writes to speed up IO, or disable them altogether # IO , 。 # access_log /var/log/nginx/access.log main buffer=16k; access_log off;
  # Sendfile copies data between one FD and other from within the kernel. # More efficient than read() + write(), since the requires transferring data to and from the user space. # sendfile , FD , read() + write() 。 sendfile on;
  # Tcp_nopush causes nginx to attempt to send its HTTP response head in one packet, # instead of using partial frames. This is useful for prepending headers before calling sendfile, # or for throughput optimization. # tcp_nopush ,Nginux HTTP 。 # sendfile HTTP , 。 tcp_nopush on;
  # don't buffer data-sends (disable Nagle algorithm). Good for sending frequent small bursts of data in real time. # data-sends ( Nagle ), 。 tcp_nodelay on;
  # Timeout for keep-alive connections. Server will close connections after this time. # keep-alive , 。 keepalive_timeout 30;
  # Number of requests a client can make over the keep-alive connection. This is set high for testing. # keep-alive , , 。 keepalive_requests 100000;
  # allow the server to close the connection after a client stops responding. Frees up socket-associated memory. # , socket 。 reset_timedout_connection on;
  # send the client a "request timed out" if the body is not loaded by this time. Default 60. # , 60 。 client_body_timeout 10;
  # If the client stops reading data, free up the stale client connection after this much time. Default 60. # , , , 60 。 send_timeout 2;
  # Compression. Reduces the amount of data that needs to be transferred over the network # , 。 gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text /plain text /css text /xml text /javascript application /x-javascript application /xml ; gzip_disable "MSIE [1-6]." ;
 
1 vim /etc/sysctl .conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 # Increase system IP port limits to allow for more connections # IP , net.ipv4.ip_local_port_range = 2000 65000
  net.ipv4.tcp_window_scaling = 1
  # number of packets to keep in backlog before the kernel starts dropping them # , net.ipv4.tcp_max_syn_backlog = 3240000
  # increase socket listen backlog # socket net.core.somaxconn = 3240000 net.ipv4.tcp_max_tw_buckets = 1440000
  # Increase TCP buffer sizes # TCP net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_congestion_control = cubic
설정 을 수정 할 때마다 다음 명령 을 실행 해 야 합 니 다.
1 sysctl -p /etc/sysctl .conf

 
전문 을 읽다.

좋은 웹페이지 즐겨찾기