您的位置:首页 > 运维架构 > Nginx

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

2018-01-08 09:34 501 查看
我们的站点目前能应对千万级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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: