LAMP调优
1、编译安装httpd前修改: 在安装包目录下 vim include/ap_release.h
搜索:BASEVENDOR 修改其八项隐藏curl -I http://地址 中的Server内容
安装编译依赖:yum install -y gcc gcc-c++ openssl-devel
编译:./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-ssl
2、安装好后:
在httpd目录下
vim conf/httpd.conf
# Various default settings
Include conf/extra/httpd-default.conf //启用
:wq
vim conf/extra/httpd-default.conf //隐藏curl -I 地址 中的server中的内容
ServerTokens Full 改为 ServerTokens Prod 最少的
ServerSignature 改为Off
:wq
3、网站根目录htdocs的权限
d 755
r 644
组 root.root
上传文件的目录需要单独改:chown -R damon.damon 目录
如果目录里有文件则:文件:find . htdocs/ -type f -exec chmod 644 {} \;
目录:find . htdocs/ -type f -exec chmod 644 {} \;
4、日志(httpd/logs):权限默认就可以,属于root组
5、优化页面(httpd/conf)
404页面:
vim conf/httpd.conf
搜索:DocumentRoot 里面的 Directory
添加ErrorDocument 404 /404.html
:wq
6、deflate模块:压缩传输
查看apache当前安装模块:/etc/init.d/httpd -M
在源码目录中:modules/filters/中查看有没有deflate模块
ls |grep deflate
/usr/local/httpd/bin/apxs -c -i -a mod_deflate.c //将模块自动追加到配置文件中去
cat /usr/local/apache2.4/conf/httpd.conf |grep deflate //查看是否打入模块
报错:httpd: Syntax error on line 107 of /usr/local/apache2.4/conf/httpd.conf: Cannot load modules/mod_deflate.so into server: /usr/local/apache2.4/modules/mod_deflate.so: undefined symbol: inflate
解决办法:vim /usr/local/apache2.4/conf/httpd.conf
在LoadModule deflate_module modules/mod_deflate.so这一行上面添加
LoadFile /usr/lib64/libz.so即可
压缩模块配置:vim /usr/local/apache2.4/conf/httpd.conf
<IfModule mod_deflate.c>
deflateCompressionLevel 9 //压缩等级
SetOutputFilter DEFLATE //名字为DEFLATE的过滤
DeflateFilterNote Input instream //过滤规则:输入过滤
DeflateFilterNote Output outstream //过滤规则:输出过滤
DeflateFilterNote Ratio ratio //过滤规则:其他过滤方式
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css //过滤类型
</IfModule>
:wq
重启apache:/etc/init.d/httpd restart
利用浏览器工具Yslow测试压缩等级
浏览器安装Yslow:http://yslow.org/
7、expires模块:压缩
进入apache安装目录:cd /usr/local/src/httpd-2.4.29/modules/metadata/
打入模块:/usr/local/apache2.4/bin/apxs -c -i -a mod_expires.c
查看:cat /usr/local/apache2.4/conf/httpd.conf |grep expires
编写配置文件:vim /usr/local/apache2.4/conf/httpd.conf
<IfModule mod_expires.c>
ExpiresActive on //开启
ExpiresDefaukt "access plus 12 month" //默认缓存时长 12个月
ExpiresByType text/html "access plus 5 day" //缓存5天
ExoiresByType text/css "access plus 2 day" //缓存2天
.
.
. //添加要缓存的文件类型即可
</IfModule>
vim /usr/local/apache2.4/conf extra/httpd-default.conf
KeepAlive On //持久链接
MaxKeepAliveRequests 100 //最大请求次数
KeepAliveTimeout 5 //最长请求时间
Timeout 60 //对特定的请求,比如get,post,put等半链接类型的请求的超时时间
8、apache的运行模式(MPM 非线程性的web服务器):
prefork:多进程的模式--一个进程相应一个请求,一百个请求则需一百个进程响应。优点是占用内存比较大,稳定
worker:一个进程产生多个线程,一个线程相应一个请求,偶尔会崩溃,一个进程坏了,后面的四十个线程都会死掉
event(版本2.4内才有效):结合了prefork和worker的优点,一个继承就收多个请求
优化:如果并发量比较大的话选择worker模式,如果追求稳定则选择prefore模式,如果为2.4及以上的话则选择event模式
/etc/init.d/httpd | grep prefork|worker|event //查看apache当前运行模式
vim /usr/local/apache2.4/conf/httpd.conf
查找mpm
#Include conf/extra/httpd-mpm.conf //启用mpm
vim /usr/local/apache2.4/conf/extra/httpd-mpm.conf
<IfModule mpm_prefork_module>
StartServers 5 //进程开启数量
MinSpareServers 5 //最小闲置进程
MaxSpareServers 10 //最大闲置进程
MaxClients 150 //最大连接客户端数量
MaxRequestsPerChild 0 //一个进程最多处理多少个请求,0为不限制
ServerLimit 200 //最大进程数
MaxRequestWorkers 250
MaxConnectionsPerChild 0 //一个线程可处理的请求
</IfModule>
<IfModule mpm_worker_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25 //一个进程最多可产生的线程数量
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
9、rewrite:地址重写--实现url跳转
/etc/init.d/httpd -M | grep rewrite //查看是否支持rewrite功能,有rewrite_module则支持
不支持解决办法:
查找系统有没有mod_rewrite.so文件,如果在/usr/local/apache2.4/modules/mod_rewrite.so存在则vim /usr/local/apache2.4/conf/httpd.conf将LoadModule rewrite_module modules/mod_rewrite.so开启
重写规则vim /usr/local/apache2.4/conf/httpd.conf
RewriteEngine on//打开重写功能
RewriteCond %{HTTP_HOST} !^www.baidu.com[NC] //不是以www.baidu.com开头的
RewriteCond %{HTTP_HOST} !^192.168.31.60[NC] //不是以ip开头的
RewriteCond %{HTTP_HOST} !^$ //不是以空行开头的
RewriteRule ^/(.*) http://www.baidu.com/[L]
(注:N为重新从第一条规则开始匹配过程,C为与下一条规则关联,NC连写为不区分大小写.L代表上面符合了到这一条终止)
10、目录浏览功能
禁止目录访问:vim /usr/local/apache2.4/conf/httpd.conf
屏蔽或者价格“-”号:DocumentRoot "/usr/local/apache2.4/htdocs"
11、不允许PHP看.txt文件
vim /usr/local/apache2.4/conf/httpd.conf
<Files ~ ".txt">
Order allow,deny
Deny from all
</Files>
LAMP调优的更多相关文章
- LAMP 系统性能调优之网络文件系统调优
LAMP 系统性能调优之网络文件系统调优 2011-03-21 09:35 Sean A. Walberg 网络转载 字号:T | T 使用LAMP系统的用户,都想把自己LAMP性能提高运行的速度提高 ...
- LAMP 系统性能调优之内核调优措施
LAMP 系统性能调优之内核调优措施 2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T 在对系统的 Apache.PHP 和 MySQL 组件进行调优之前, ...
- LAMP之Apache调优
一.环境的搭建 实验环境: 操作系统:Centos 7.4 [root@xuegod70 ~]# ls apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2. ...
- linux概念之性能调优
目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具: 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...
- MySQL性能诊断与调优 转
http://www.cnblogs.com/preftest/ http://www.highperfmysql.com/ BOOK LAMP 系统性能调优,第 3 部分: MySQL 服务 ...
- Nginx 源码安装和调优
常见web架构: LAMP =Linux+Apache+Mysql+PHP LNMP =Linux+Nginx+Mysql+PHP nginx概述: 知道:1 不知道:2 Nginx (&q ...
- MySQL性能诊断与调优
LAMP 系统性能调优,第 3 部分: MySQL 服务器调优http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-3.html LoadRun ...
- 46张PPT讲述JVM体系结构、GC算法和调优
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载 ...
- 《深入理解Java虚拟机》调优案例分析与实战
上节学习回顾 在上一节当中,主要学习了Sun JDK的一些命令行和可视化性能监控工具的具体使用,但性能分析的重点还是在解决问题的思路上面,没有好的思路,再好的工具也无补于事. 本节学习重点 在书本上本 ...
随机推荐
- SpringBoot--application.yml
application.properties 配置了端口号:9090 application.yml 也配置了端口号:8080 SpringBoot使用9090,以属性为主 1.在applicatio ...
- 巨杉数据库入选年度Gartner Peer Insights报告,获得市场高度评价
Gartner Peer Insights 年度评选结果于近日出炉,在数据库管理系统市场报告中,巨杉数据库获得了总平均分4.7(满分5分)的成绩,在众多国际厂商中位居第三,是国内唯一一家入选的数据库厂 ...
- testclass面试题
http://www.testclass.net/interview/selenium/ seleniuim面试题 http://www.testclass.net/interview/inter ...
- 压缩包安装mysql8.0
在使用django的时候遇到一个错误,就是用脚本改变数据库的时候,发现mysql的版本不够,需要的版本应该大于5.8,而我的只有5.5,就很烦,恰好我之前有8.0的压缩包.(mysql重装已经不下十次 ...
- Spring MVC 中使用properties文件
首先要搭建Spring mvc的环境,然后开始properties文件里的配置: 第一步:在springcontext中注入properties,具体路径自己调整 <bean id=" ...
- layui之弹出层关闭和刷新问题
本篇文章是根据本人实际开发的例子来讲的,不一定适用各位看官的情况 描述: 主页面,弹出第一个弹框,第一个弹框中在弹出第二个弹框,如图: 1是主页面,2是子弹窗,3是孙弹窗 功能一:好了,第一个我要实现 ...
- 第四十一篇 入门机器学习——Numpy的基本操作——聚合操作
No.1. 对向量元素求和使用np.sum,也可以使用类似big_array.sum()的方式 No.2. 对向量元素求最小值使用np.min,求最大值使用np.max,也可以使用类似big_arra ...
- HTML的列表标签和表格标签
网页的列表和表格 列表的分类 无序列表 有序列表 自定义列表 有序列表 <!--有序列表--><ol> <li>辽宁</li> <li ...
- 文件上传plupload组件使用
这段时间一直在使用文件上传,简要的介绍一下文件上传的组件使用,先上一段代码. var uploader = new plupload.Uploader( { //用来指定上传方式,指定多个上传方式请使 ...
- 每天进步一点点------Allegro手工建立电路板
手工建立电路板步骤(以某个四层板为例): (1)file---new---board/board wizard来建立.brd电路板文件.设置名称和保存路径后,要设置绘图区域的大小,setup---dr ...