内核优化
编辑
/etc/sysctl.conf
net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296net.ipv4.tcp_max_tw_buckets = 6000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.netdev_max_backlog = 262144net.core.somaxconn = 262144net.ipv4.tcp_max_orphans = 3276800net.ipv4.tcp_max_syn_backlog = 262144net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_syn_retries = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_fin_timeout = 1net.ipv4.tcp_keepalive_time = 30net.ipv4.ip_local_port_range = 1024 65000
再输入
/sbin/sysctl -p 使其生效
Conf 设置
worker_processes 2 # 2 就是服务器的核心数worker_cpu_affinity 01 10 # 填法和服务器的线程数相关,一般云服务器/vps 线程和核心数是一致的,具体写法不展开。
如果是 tengine 的话,后面直接填 auto 即可。
worker_connections #用高效的event驱动,可以获得最大性能
其他的参数最好根据你的服务器配置进行调整,以避免 502 的产生。
TCP 优化
http { sendfile on; tcp_nopush on; tcp_nodelay on;keepalive_timeout 60;
第一行的 sendfile 配置可以提高 Nginx 静态资源托管效率。sendfile 是一个系统调用,直接在内核空间完成文件发送,不需要先 read 再 write,没有上下文切换开销。
TCP_NOPUSH 是 FreeBSD 的一个 socket 选项,对应 Linux 的 TCP_CORK,Nginx 里统一用 tcp_nopush 来控制它,并且只有在启用了 sendfile 之后才生效。启用它之后,数据包会累计到一定大小之后才会发送,减小了额外开销,提高网络效率。
TCP_NODELAY 也是一个 socket 选项,启用后会禁用 Nagle 算法,尽快发送数据,可以节约 200ms。Nginx 只会针对处于 keep-alive 状态的 TCP 连接才会启用 tcp_nodelay。
-------------------------
Socket 连接 php-fpm修改 php-fpm.conf将listen = 127.0.0.1:9000改为listen = /dev/shm/php-cgi.sock修改 nginx.conflocation ~ .*\.(php|php5)?$ { #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; }事后不要忘记重启就好。反代优化Nginx 安装时,或者升级时编译 ngxcachepurge 组件以反代 Node.js 应用 Ghost 为例:server { server_name domain.com; add_header X-Cache $upstream_cache_status; location / { proxy_cache STATIC; proxy_cache_valid 200 30m; proxy_cache_valid 404 1m; proxy_pass http://127.0.0.1:2368; proxy_ignore_headers X-Accel-Expires Expires Cache-Control; proxy_ignore_headers Set-Cookie; proxy_hide_header Set-Cookie; proxy_hide_header X-powered-by; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; expires 10m; } location /content/images { alias /path/to/ghost/content/images; access_log off; expires max; } location /assets { alias /path/to/ghost/content/themes/uno-master/assets; access_log off; expires max; } location /public { alias /path/to/ghost/core/built/public; access_log off; expires max; } location /ghost/scripts { alias /path/to/ghost/core/built/scripts; access_log off; expires max; } location ~ ^/(?:ghost|signout) { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; add_header Cache-Control "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0"; }}HTTP/2 + 优化因为 Nginx 稳定支持HTTP/2 的 1.10 版本还没有出,所以暂时不写。可以先参考 SPDY:或许是 Nginx 下 SPDY 配置最实际的教程开启 Gzip对于文本文件,在服务端发送响应之前进行 GZip 压缩也很重要,通常压缩后的文本大小会减小到原来的 1/4 - 1/3。http { gzip on; gzip_vary on; gzip_comp_level 6; gzip_buffers 16 8k; gzip_min_length 1000; gzip_proxied any; gzip_disable "msie6";gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; ... ...}PageSpeed
优化缓存——让你应用的数据和逻辑完全避免使用网络减少回应时间——减少一连串请求-响应周期的数量减小请求大小——减少上传大小减小有效负荷大小——减小响应、下载和缓存页面的大小优化浏览器渲染——改善浏览器的页面布局
谷歌推出的很好很强大的优化软件,由于篇幅有限,所以请自行搜索安装教程
来自:
https://www.vobe.io/378