首頁  >  文章  >  後端開發  >  nginx管理設定最佳化

nginx管理設定最佳化

不言
不言原創
2018-05-08 10:31:271785瀏覽

這篇文章主要介紹了nginx管理配置優化,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

nginx優化

優化思路
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查詢。因為phpmemcached也要建立tcp連接,所以簡單的sql查詢不需要用快取。


以上是nginx管理設定最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn