• 技术文章 >头条

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

    无忌哥哥无忌哥哥2018-06-27 14:53:24原创1515
    我们的站点目前能应对千万级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核实处理。
    上一篇:PHP如何解决网站的大数据大流量与高并发 下一篇:php中操作数据库的基本代码和流程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 35+个chrome插件,让你工作学习事半功倍!• Github 上 8 个不可错过的 Vue 项目,快来收藏!!• 66个面试问题,带你梳理MySQL知识点!• MySQL如何进行优化?从5个维度聊聊性能优化• 什么是PHP框架?PHP框架与CMS的区别
    1/1

    PHP中文网