配置文件基本参数优化
1.隐藏版本号
【nginx】 nginx.conf配置文件,http标签加入: server_tokens off 改源码: src/http/ngx_http_header_filter_module.c src/http/ngx_http_special_response.c 【apache】 httpd.conf文件添加 Include conf/extra/httpd-default.conf 打开extra/httpd-default.conf模块加入 ServerTokens Prod ServerSignature Off
2.更默认用户与组
【nginx】 第一种方法:nginx.conf 配置文件 user www www 第二种方法:编译nginx 时增加 --user=www --group=www 【apache】
3.配置nginx worker进程个数
worker_processes 8; 或 worker_processes auto; 四核cpu服务器(进程CPU亲和力,分别表示第1.2.3.4颗CUP) worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000; 八核cpu服务器(进程CPU亲和力,分别表示第1.2.3.4.5.6.7.8颗CUP) worker_processes 8; worker_cpu_affinity 000000001 00000010 00001000 00010000 00100000 01000000 1000000 0100000000; worker_cpu_affinity 0001 0010 0100 1000;
4.事件处理模型优化
linux一般使用 epoll,IO多路复用模型 events 标签添加 use epool;
5.调整单个进程允许的客户端最大连接数
events 标签添加 worker_connections 20480;
6.配置每个进程最大文件打开数
main 标签添加 worker_rlimit_nofile 20480;
7.优化服务器名字的hash表大小
server 标签添加 server_name bbs.test.org; 如果定义了大量名字,或者定义了非常长的名字,那就需要在http配置块中调整 server_names_hash_max_size 和 server_names_hasl_bucket_size 的值。 server_names_hash_bucket_size的默认值可能是32,或者是64,或者是其他值,取决于CPU 的缓存行的长度。 如果这个值是32,那么定义“too.long.server.name.nginx.org”作为虚拟主名就会失败,
8.开高效文件传输模式
server、http、localhost 标签均可添加 sendfile on; 开启文件高效传输模式e同时将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络及磁盘I/0阻塞。
9.设置连接超时时间
server、http、localhost 标签均可添加 keepalive_timeout 60; tcp_nodelay on; client_header_timeout 15; client_body_timeout 15; send_timeout 25;
10.上传文件大小限制(动态应用)
server、http、localhost 标签均可添加 server、http、localhost 标签均可添加 client_max_body_size 10m;
11.FastCGI相关参数调优(配合PHP引擎动态服务)
conf/fcastcgi.conf 包含一些变量与参数 server、http、localhost 标签均可添加 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_cache test_nginx; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m; fastcgi_cache_valid 301 1d; fastcgi_cache_min_uses 1; include 第21条
12.Nginx gzip 压缩性能优化
【nginx】 server、http、localhost 标签均可添加 gzip on; gzip_min_length 1k; gzip_buffers 4 32k; gzip_http_version 1.1; gzip_comp_level 9; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; gzip_vary on; conf/mime.types 文件类型 【apache】 1、以 DSO 动态模块加载 mod_deflate 配置的全部命令为: cd /home/oldboy/tools/httpd-2.2.27/modules/filters/ <==切到 apache 软件目录 mod_deflate 程序下。 /application/apache/bin/apxs -c -i -a mod_deflate.c <==以 dso 的方式编译入到 apache 中。 ll /application/apache/modules/mod_deflate.so <==检查 mod_deflate httpd.conf配置文件增加 DeflateCompressionLevel 9 SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE text/css
13.expires 缓存性能优化
【nginx】 location URL规则将需要缓存的扩展名列出来然后指定缓存时间 expires 3650d 【apache】 ExpiresActive on ExpiresDefault "access plus 12 month" ExpiresByType text/html "access plus 12 months" ExpiresByType text/css "access plus 12 months" ExpiresByType image/gif "access plus 12 months" ExpiresByType image/jpeg "access plus 12 months" ExpiresByType image/jpg "access plus 12 months" ExpiresByType image/png "access plus 12 months" EXpiresByType application/x-shockwave-flash "access plus 12 months" EXpiresByType application/x-javascript "access plus 12 months" ExpiresByType video/x-flv "access plus 12 months"
14.nginx 防爬虫处理
方法一:修改nginx.conf,禁止网络爬虫的ua,返回403。 if ($http_user_agent ~* "Baiduspider|Googlebot|Tomato Bot") { return 403; } 方法2:网站更目录下增加Robots.txt,放在站点根目录下。 在http://tool.chinaz.com/robots/站点可以针对现在的搜索引擎按照想要的规则生成robots.txt文件。
15.nginx 实现日志轮询
https://www.qinzc.me/post-89.html
16.不记录不需要的访问日志
【nginx】 location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$ { access_log off; } 【apache】 <FilesMatch "\.(css|js|gif|jpg|ico|swf)"> SetEnv IMAG 1 </FilesMatch> 找到配置日志的地方 CustomLog "|/usr/local/sbin/cronolog /app/logs/%Y/%m/access_%Y%m%d.log" combined env=!IM AG CustomLog "|/usr/local/sbin/cronolog /app/logs/%Y/%m/%d/access_%Y%m%d%H.log" combined en v=!IMAG 假如日志目录为/app;logs 则授权方法 chown -R root.root /app/logs chmou -R 700 /app/logs
17.最小化web目录及文件权限设置
所有站点目录用户和组应该为root,所有目录权限755,所有文件权限644
18.站点目录及文件URL访问控制
location ~ ^/images/.*\.(php|php5)$ { deny all; } location ~ ^/static/.*\.(php|php5)$ { deny all; } location ~* ^/data/(attachment|avatar)/.*\.(php|php5)$ { deny all; }
18.限制来源IP访问
location ~ ^/oldboy/ { allow 202.111.12.211; deny all; } location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; deny all; }
19.优雅访问页面
error_page 403 /403.html
20.使用tmpsf文件系统替代频发访问的目录
先移走,挂载后,再移回来 mount -t tmpfs -o size=200m tmpfs /tmp 也可以加入ftab tmpfs /tmp tmpfs size=200m 0 0
21.proxy.conf 参数优化
proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 50m; client_body_buffer_size 256k; proxy_connect_timeout 30; proxy_send_timeout 30; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; proxy_max_temp_file_size 128m; proxy_store on; proxy_store_access user:rw group:rw all:r; #proxy_temp_path /dev/shm/nginx_proxy; #proxy_temp_path /data2/nginx_cache;
22.Apache worker/perfork模式说明及优化
查看当前编译的模式 /application/apache/bin/apachectl -l|grep "worker|perfork" /application/apache/bin/apachectl -V 特别说明: 如果显式声明了 ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于 MaxClients, 而且MaxClClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节 数学表达: MaxClient <= 总的进程数(Servei Limit)* 线程数(ThreadsPerChill) MaxClient % ThreadsPerChild = 0 并发连接数查看 psterr -a|grep http|wc -l
23.Web服务资源防盗链
方法1:referer 阻止,http协议 头中一个字段 方法2:cookie 处理 方法3:通过加密变换访问路径实现防盗链,lighttpd 有类似的插件,mod_secdownload
LAMP 系统性能调优,第 1 部分
http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-1
LAMP 系统性能调优,第 2 部分
https://www.ibm.com/developerworks/cn/linux/l-tune-lamp-2.html
LAMP 系统性能调优,第 3 部分
https://www.ibm.com/developerworks/cn/linux/l-tune-lamp-3.html
停留在世界边缘,与之惜别