首頁  >  文章  >  php高併發大流量站點nginx優化

php高併發大流量站點nginx優化

无忌哥哥
无忌哥哥原創
2018-06-27 14:53:242360瀏覽

我們的網站目前能應付千萬級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; 
}

2.停用或最佳化access_log

 大流量存取時,較大的存取會導致存取日誌對磁碟的讀寫非常大。如果不需要日誌的話,可以停用掉。

access_log off; 
log_not_found off;

或開啟緩衝

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

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]\.";


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;

5 .優化worker processes

 nginx是多進程的而不是多執行緒的,對於進程相關的配置我們需要如下優化。

 先來看看伺服器的處理器數。

cat /proc/cpuinfo | grep processor

 接著設定worker_processes,進程數為所得的處理器數。 worker_connections 是每個行程可以開啟的最大連線數,可以調大一些。下面給一個參考。

# We have 16 cores 
worker_processes 16; 
# connections per worker 
events 
{ 
  worker_connections 4096; 
  multi_accept on; 
}
 记住multi_accept 必须打开。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn