Rumah > tajuk utama > php高并发大流量站点nginx优化

php高并发大流量站点nginx优化

无忌哥哥
Lepaskan: 2018-06-27 14:53:24
asal
2499 orang telah melayarinya

我们的站点目前能应对千万级PV以及百万级的并发,对php+nginx的优化有一点点心得,写下来做一些记录。

1.TCP sockets 与Unix sockets

Unix sockets比TCP sockets提供更好一些的性能(因为I/O数据读写少,上下文切换少)。

upstream backend 
{ 
  server unix:/var/run/fastcgi.sock; 
  # server 127.0.0.1:8080; 
}
Salin selepas log masuk

2.禁用或者优化access_log

大流量访问时,较大的访问会导致访问日志对磁盘的读写非常大。如果不需要日志的话,可以禁用掉。

access_log off; 
log_not_found off;
Salin selepas log masuk

或者打开缓冲

access_log /var/log/nginx/access.log main buffer=32k;
Salin selepas log masuk

3.打开Gzip

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
Salin selepas log masuk


4.优化输出缓存

fastcgi_buffers 256 16k; 
fastcgi_buffer_size 128k; 
fastcgi_connect_timeout 3s; 
fastcgi_send_timeout 120s; 
fastcgi_read_timeout 120s; 
fastcgi_busy_buffers_size 256k; 
fastcgi_temp_file_write_size 256k;
Salin selepas log masuk

5.优化worker processes

nginx是多进程的而不是多线程的,对于进程相关的配置我们需要如下优化。

首先看一下服务器的处理器数。

cat /proc/cpuinfo | grep processor
Salin selepas log masuk

然后设置worker_processes,进程数为得到的处理器数。 worker_connections 是每一个进程可以打开的最大连接数,可以调大一些。下面给一个参考。

# We have 16 cores 
worker_processes 16; 
# connections per worker 
events 
{ 
  worker_connections 4096; 
  multi_accept on; 
}
 记住multi_accept 必须打开。
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan