【linux命令】php+nginx高并发大流量站点nginx优化

内容摘要
这个文章时候了解高并发大流量站点配置优化的时候搜索到的,未验证其真实性。不过自己按照自己优化同时参考这个优化,服务器在高并发大流量环境中并无异常,可以借鉴参考,注意做这
文章正文

这个文章时候了解高并发大流量站点配置优化的时候搜索到的,未验证其真实性。不过自己按照自己优化同时参考这个优化,服务器在高并发大流量环境中并无异常,可以借鉴参考,注意做这个优化之前,务必服务器内核调整优化。原文如下:

我们的站点目前能应对千万级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 必须打开。

原文转载于:
php高并发大流量站点nginx优化 :http://www.cnblogs.com/dawnlee/p/5142724.html

总结下:这里的优化实际也是参考了《Nginx配置性能优化总结》里的配置,比如进程数量、连接数以及复用、日志输出、缓存设置、gzip压缩等。作为一个网友的实际案例,可以参考。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!