媒介:本文提到的參數,和實際應用中處事器會見量有關。詳細請本身斟酌修改。
一、系統篇
1、增加系統文件打開數vi /etc/security/limits.conf
* hard nofile 51200
* soft nofile 51200
這篇文章做參考照舊挺好的:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1029881
2、封鎖Mail Server(centos7):systemctl disable postfix.service
啟用:systemctl enable postfix.service
封鎖Mail Server(centos6):chkconfig postfix off
二、Nginx篇
1、Nginx http塊:屏蔽版本信息server_tokens off;不外照舊可以通過$_SERVER["SERVER_SOFTWARE"]得到=>nginx/1.0.11.因此得vi /usr/local/nginx/fastcgi_params(文件路徑取決于你的nginx.conf路徑) 修改fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;將/$nginx_version去掉,可能改本性點^_^
2、Nginx http塊:上傳體積限制client_max_body_size 8m;
3、http塊插手fastcgi_intercept_errors on; (這句要加上,不然404很雜亂)
error_page 404 403 /404.html;(404.html文件體積不能太小)
4、文件范例:
vi /usr/local/webroot/mime.types
application/octet-stream url;(增加url快捷鏈接文件下載,這個一般用不著。)
application/vnd.android.package-archive apk;(增加安卓應用文件下載,這個一般用不著。)
5、Nginx偽靜態方面.htaccess的成果太弱,需要在nginx.conf上配置,詳細可以看下網上資料,一搜一大把。apache支持的.htaccess成果強大些。不外在nginx.conf上配置的偽靜態法則卻是很強大的。
6、克制盜鏈:
location ~* .(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {
valid_referers none blocked a.org www.a.org ;
if ($invalid_referer) {#$invalid_referer為變量
rewrite ^/ http://www.a.org/404.html;
}
7、克制IP會見:
有些VPS或機房會答允以IP直接會見,添加以下server塊克制:
server {
server_name _;
return 403;
}
8、克制其他玉米會見
我遇到過新買的VPS,上面居然綁了N多域名,功效導致百度收錄紊亂,添加以下server塊克制:
server {
listen 80 default;
rewrite ^(.*) http://www.flashgou.com permanent;
}
9、克制目次執行php(理會php)
location /uploads/ {
location ~ .*.(php)?$ {
deny all;
}
}
10、# set php open_basedir
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
三、PHP篇
Php.ini:
1、屏蔽php版本信息expose_php=off,不外仍舊可以通過PHP_VERSION常量來顯示,但長途探測已樂成屏蔽了。
2、克制危險函數disable_functions =phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
system,exec,phpinfo
3、限制目次:open_basedir =/var/www/sina/:/var/www/wangyi/:/var/www/logs/session/,,假如是apache則可以利用php_admin_value open_basedir 限定
4、配置時區,封鎖討厭的告誡date.timezone ="Asia/Shanghai"
5、display_errors = OFF 封鎖報警信息(默認OFF),不外對付nginx的php-fpm跑php來說,報警信息節制由php-fpm.conf里的;php_flag[display_errors] = off節制,默認就是封鎖狀態。
6、memory_limit = 128M 這個參數并不需要去配置。你用php看下這個就大白了:
<?php
if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . ' MByte';
else $memory_usage = 'N/A';
echo '<br/>已用內存:'.$memory_usage;
?>
一般而言,縱然配置成8M或12M都不會有問題,并且配置成128M也不是當即占用內存的。主要在上傳文件時會大點(N人一起上傳,可能劇本寫得機能爛)。
7、magic_quotes_gpc = Off配置為on,不外,一個及格的php措施員應該在措施中始終利用if(get_magic_quotes_gpc()){$str=stripslashes($str);}來處理懲罰顯示數據。雖然,假如網站措施不是你寫的,照舊把magic_quotes_gpc配置為on吧。(php 7 已裁減magic_quotes_gpc)
8、allow_url_fopen = On,沒有來由配置為On,堅決allow_url_fopen = Off
9、上傳
;upload_tmp_dir =/var/www/tmp
upload_max_filesize = 2M
post_max_size = 8M
這三個照舊要按照本身的環境配置一下的,接洽Nginx的第2點。
10、session.save_path = "var/www/tmp"和upload_tmp_dir="var/www/tmp",這兩個參數配置一下,閑著沒事時也可以刪除一下節減點處事器空間,嘿嘿。(浮夸了點,此刻不缺硬盤)不外有人說存到/dev/shm下,直接以內存方法處理懲罰會很是快。但我以為除了打點員,實在是沒須要讓所有用戶都回收session方法驗證。至于說cookies不安詳,不安詳你就辦理安詳問題唄。
11、[安詳相關][高危]esc輸入/cgi.fix_pathinfo,配置cgi.fix_pathinfo = 0;(這個真惡心,你把一php文件改為a.jpg,上傳然后會見a.jpg/asdf.php試下就知) (好象5.3.10不存在此問題了,會顯示Access denied. )
12、max_input_vars = 1000,無需配置,默認為1000,雖然也可以配置小點,好比512。php 5.3.8插手此參數