這篇文章主要介紹了nginx管理配置優化,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
優化思路
1、調整參數隱藏nginx軟體版本號資訊
server_tokens off;
2、更改nginx服務預設使用者
user nginx nginx;
3.最佳化nginx服務的worker進程個數
worker_processes cpu*核数;
4、最佳化綁定不同的nginx進程到不同的cpu上
worker_cpu_affinit 0001 0010 0100 1000 0001 0010 0100 1000;
5、nginx時間處理模型最佳化
use epoll
6、調整單一進程最大連線數
worker_connections 20480;
7、nginx work進程最大開啟檔案數
worker_rlimit_nofile 65535;
8、開啟高效率檔案傳輸模式
sendfile on;
用於開啟檔案的高效傳輸模式,同時將tcp_nopush和tcp_nodelay兩個指令設定為on,可以防止網路及磁碟I/O阻塞,提升nginx工作效率。
9、最佳化連線逾時時間
keepalive_timeout 0; //结束响应后立即断开tcp连接。
10、fastCGI最佳化
#11、設定nginx gzip壓縮實作效能最佳化
gzip on; gzip_min_length 1k; gzip_buffers 4 32k; gzip_comp_level 9; gzip_vary on;
12、設定nginx expires快取實作效能最佳化
nginx expires 3650d;
13、nginx日誌相關最佳化與安全性
14、根據拓展名限製程式和檔案存取。
dell all;allow all;
15、防盜鏈
HTTP referer
1、系統層面最佳化
echo 500000 > /proc/sys/net/core/somaxconn //设置最大连接数 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle //加快tcp回收 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse //空的tcp允许回收利用 echo 0 > /proc/sys/net/ipv4/tcp_syncookies //关闭洪水抵御
2、nginx&php-fpm最佳化設定
nginx將請求轉送給php-fpm處理,當nginx轉送很多請求時,php-fpm程序不夠用,就會產生子程序。
然而生成子程序需要內核來調度,比較耗時。
如果網站並發比較大,可以用靜態方式一次產生多個子進程,保持的記憶體中。
修改phjp-fpm.conf
pm=static //让php-fpm进程始终保持,不需要动态生成pm.max_children=32 始终保持的子进程数量
3、php&mysql優化
核心層面:加大連線數,加快tcp回收
mysql層面:增大連線數
php層面:用長連接,節省連接數
用記憶體快取(memcached
),減輕mysql壓力
注意
記憶體快取適用於快取複雜的sql查詢。因為php
與memcached
也要建立tcp連接,所以簡單的sql查詢不需要用快取。
以上是nginx管理設定最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!