lnmp全面优化集合【转】
本人剛開始使用linux服務器時使用的環境就是軍哥的lnmp,此篇文章就是當時收藏的,轉自張小三博客。現在使用的是寶塔面板,使用更方便。
lnmp的全名是linux+nginx+mysql+php,既然是全面優化那我們就從linux系統的選擇入手。debian系統可以算是linux各分支中做的比較突出的一類,連谷歌都拋棄linux訂制,由此可見debian系統之優秀,相較其它linux系統debian具有穩定、占用資源少對于網站web環境來說這些正是我們所需要的,其中debian6版本算是這一優點的集中體現。目前市面上有很多的安裝包,其中軍哥的lnmp是被站長使用較多的一種。
一:lnmp的nginx優化
主要是修改 /usr/local/nginx/conf/nginx.conf
1.軍哥的lnmp安裝包中nginx的worker_processes默認設置是1,這里我們要根據服務器cpu具體的核心數來優化。通常4核的CPU我會把值設為3。
2核CPU,開啟2個進程 worker_processes 2; worker_cpu_affinity 01 10; 4核CPU,開3個進程 worker_processes 3; worker_cpu_affinity 0010 0100 1000; 8核CPU,開8個進程 worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
2.worker_rlimit_nofile參數默認是5xxxx.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 32700;
}
添加防壓力測試
if ($http_user_agent ~ ApacheBench|WebBench|Jmeter|must-revalidate|Havij) {retun 503;}
添加針對CVE-2013-4547鏈接空格的補丁
if ($request_uri ~ " ") {return 444;}
二:lnmp的mysql優化
用/usr/local/mysql/share/mysql/目錄下的my-large.cnf 文件替換根目錄etc下的my.cnf文件
my-huge.cnf: 適合1GB - 2GB RAM主機使用
my-large.cnf: 適合 512MB RAM使用
my-medium.cnf: 只有 32MB - 64MB RAM使用
my-small.cnf:小于64MB 用,MySQL會占用很少資源
my-innodb-heavy-4G.cnf 適合4G以上使用
禁用mysql日志: 修改 /etc/my.cnf 文件 在log-bin=mysql-bin和binlog_format=mixed 這兩行前面加#注釋掉即可。 在query_cache_size= 16M下面添加一行: tmp_table_size = 200M
三:lnmp的php相關參數優化
優化主要是修改/usr/local/php/etc/目錄下的php-fpm.conf和php.ini文件
1.php-fpm.conf參數優化
刪除value name="display_errors" 這一行的代碼,防止壞人從PHP錯誤中找到漏洞。
max_children默認參數是開啟5個進程。數值要根據內存大小來定,每一個php-cgi所耗費的內存在20M左右。
126M內存默認即可 256M 10個 512M 20個 1G 40個
request_terminate_timeout參數默認是0s,修改為300s
rlimit_files參數默認5xxxx,修改為65535
2.php.ini參數優化
disable_functions = 默認禁用了一些參數,PHP中有一些函數的風險性還是相當大的,如果允許這些函數執行,當PHP 程序出現漏洞時,損失是非常嚴重的
fsockopen這個參數用的比較多,可以刪除。 另外從安全方面考慮可隱藏PHP版本號 將文件里面的 expose_php = On 修改為 expose_php = Off 即可 將display_errors =On改為Off
最后修改最大連接數使重啟后也可生效,在/etc/profile 最后增加一行 ulimit -SHn 65535
另外軍哥的LNMP安裝包里有一個eAccelerator的安裝文件。最好裝一下。這個是加速PHP緩存的還不錯。
關于eAccelerator的設置我就給出兩個修改的地方吧:
eaccelerator.shm_size="16"
#默認是占用16M共享內存,軍哥好像是1,你就改成16吧。大小也可根據你的內存情況設置。
另外軍哥默認是eaccelerator緩存目錄是/usr/local/eaccelerator_cache,這樣用硬盤緩存的話,某些情況會影響php的響應時間。我們可以直接放到共享內存里面老。
運行命令:mkdir -p /dev/shm/eaccelerator_cache
修改目錄為以下就OK了。
eaccelerator.cache_dir="/dev/shm/eaccelerator_cache"
最后全部修改完記得重啟生效:/root/lnmp restart
本文轉自:http://www.zxsdw.com/index.php/archives/881/
總結
以上是生活随笔為你收集整理的lnmp全面优化集合【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iconv将gb2312转utf-8丢失
- 下一篇: 新手必看:利用浏览器的审查元素功能找CS