Nginx-PHP優化設置 + lnmp調優的關鍵影響因素 + php-fpm + nginx返回碼 + tcp調優 + 最大文件描述符


https://www.cnblogs.com/zengkefu/p/5602473.html
最大文件描述符

https://blog.csdn.net/fanren224/article/details/79971359

https://www.cnblogs.com/ruiy/p/10761004.html

Linux內核本身有文件描述符最大值的**,你可以根據需要更改:

系統最大打開文件描述符數:/proc/sys/fs/file-max
臨時性設置:echo 1000000 > /proc/sys/fs/file-max
永久設置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

2、用戶級設置
vi /etc/security/limits.conf
httpd soft nofile 4096
httpd hard nofile 10240
httpd是用戶,可以使用通配符*表示所有用戶。

*               -       nofile          60000
要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。
查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
https://www.centos.bz/2012/05/linux-increase-the-maximum-number-of-open-files/

 

TCP/IP參數配置

修改文件/etc/sysctl.conf,配置網絡參數。
net.ipv4.tcp_wmem = 4096 87380 4161536
net.ipv4.tcp_rmem = 4096 87380 4161536
net.ipv4.tcp_mem = 786432 2097152 3145728

最大文件描述符

Linux內核本身有文件描述符最大值的**,你可以根據需要更改:

系統最大打開文件描述符數:/proc/sys/fs/file-max
臨時性設置:echo 1000000 > /proc/sys/fs/file-max
永久設置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

 

1.nginx本身不能處理PHP,它只是個web服務器,當接收到請求后,如果是php請求,則發給php解釋器處理,並把結果返回給客戶端。

nginx一般是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果並返回被nginx

2.PHP-FPM是什么?

一個PHP FastCGI管理器,是只用於PHP的

PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。

3.下面是對php-fpm運行用戶進行設置

1
2
3
cd /usr/local/php
cp etc/php-fpm.conf.default etc/php-fpm.conf
vi etc/php-fpm.conf
 

修改
user = www-data
group = www-data

如果www-data用戶不存在,那么先添加www-data用戶
groupadd www-data
useradd -g www-data www-data

4.修改nginx配置文件以支持php-fpm

nginx安裝完成后,修改nginx配置文件為,nginx.conf

其中server段增加如下配置,注意標紅內容配置,否則會出現No input file specified.錯誤

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#(備注:訪問過程中可能會報錯:”File not found“,解決辦法是吧default.conf 文件中改為  /var/www/html$fastcgi_script_name;

參考:https://blog.csdn.net/jiashiwen/article/details/48806243
include fastcgi_params;
}

5。啟動php-fpm和nginx

########################################################### 

 
1
2
3
4
/usr/local/php/sbin/php-fpm
#手動打補丁的啟動方式/usr/local/php/sbin/php-fpm start
 
sudo /usr/local/nginx/nginx
 5.注意點: chown www-data:www-data /var/www/app/ -Rf
6.cat  nginx.conf
user www-data www-data;
 
#############################################
LNMP 架構優化 優化那些 ,特別影響性能那些參數,?
1.
expires 180d;

expires緩存調優

緩存,主要針對於圖片,css,js等元素更改機會比較少的情況下使用,特別是圖片,占用帶寬大,我們完全可以設置圖片在瀏覽器本地緩存365d,css,js,html可以緩存個10來天,這樣用戶第一次打開加載慢一點,第二次,就非常快了!緩存的時候,我們需要將需要緩存的拓展名列出來, Expires緩存配置在server字段里面。
---------------------
2.gzip on;     #開啟壓縮功能

3.1、Nginx連接超時時間

參考:https://blog.csdn.net/qq_39591494/article/details/78829314

 

 

################################################################

3.2. 異步非阻塞機制
每個 工作進程 使用 異步非阻塞方式,可以處理 多個客戶端請求。

每個新連接都會創建另一個文件描述符,並消耗工作進程中少量的額外內存。每一個連接的額外消耗都很少。
NGINX進程可以保持固定的CPU占用率。當沒有工作時,上下文切換也較少。

 

1.調優的思路:

nginx要響應請求的話,必須要:

1.要建立socket連接

2.是要讀本地的文件

所以參考照上面的優化思路,我們可以更改上面的系統級別的參數,從而進行調優:
1 echo 50000 > /proc/sys/net/core/somaxconn  --- 打開的最大文件的數目
2 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle --- 加快tcp連接的回收
3 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse   --- 空的tcp是否允許回收利用
4 echo 0 > /proc/sys/net/ipv4/tcp_syncookies --- 不做洪水抵御

參考:https://www.cnblogs.com/shangzekai/p/4689772.html

 

tcp/ip調優 https://blog.csdn.net/robertsong2004/article/details/41725715

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM