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调优的更多相关文章

  1. LAMP 系统性能调优之网络文件系统调优

    LAMP 系统性能调优之网络文件系统调优 2011-03-21 09:35 Sean A. Walberg 网络转载 字号:T | T 使用LAMP系统的用户,都想把自己LAMP性能提高运行的速度提高 ...

  2. LAMP 系统性能调优之内核调优措施

    LAMP 系统性能调优之内核调优措施 2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T 在对系统的 Apache.PHP 和 MySQL 组件进行调优之前, ...

  3. LAMP之Apache调优

    一.环境的搭建 实验环境: 操作系统:Centos 7.4 [root@xuegod70 ~]# ls apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2. ...

  4. linux概念之性能调优

    目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具: 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...

  5. MySQL性能诊断与调优 转

    http://www.cnblogs.com/preftest/ http://www.highperfmysql.com/     BOOK LAMP 系统性能调优,第 3 部分: MySQL 服务 ...

  6. Nginx 源码安装和调优

    常见web架构: LAMP  =Linux+Apache+Mysql+PHP LNMP  =Linux+Nginx+Mysql+PHP   nginx概述: 知道:1  不知道:2 Nginx (&q ...

  7. MySQL性能诊断与调优

    LAMP 系统性能调优,第 3 部分: MySQL 服务器调优http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-3.html LoadRun ...

  8. 46张PPT讲述JVM体系结构、GC算法和调优

    本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载 ...

  9. 《深入理解Java虚拟机》调优案例分析与实战

    上节学习回顾 在上一节当中,主要学习了Sun JDK的一些命令行和可视化性能监控工具的具体使用,但性能分析的重点还是在解决问题的思路上面,没有好的思路,再好的工具也无补于事. 本节学习重点 在书本上本 ...

随机推荐

  1. C语言 malloc函数

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.                                                 ...

  2. AcWing 1027. 方格取数

    #include<iostream> using namespace std ; ; *N][N][N]; int w[N][N]; int n; int main() { cin> ...

  3. 使用yaml格式进行接口测试报错

    前言:本人公司使用yaml做接口测试.某日开发写了一个字典嵌套列表,列表里面再嵌套字典的接口. yaml的值应该为下图(注意缩进问题)   加了-代表下面是一个列表 {'uid': '3a61479f ...

  4. jquery validate验证插件扩展方法(转)

    /***************************************************************** jQuery Validate扩展验证方法 (linjq) *** ...

  5. HDU 2586 ( LCA/tarjan算法模板)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:n个村庄构成一棵无根树,q次询问,求任意两个村庄之间的最短距离 思路:求出两个村庄的LCA,d ...

  6. java的并发

    问题: 过程: 正常流程:记录生成:状态=1-->北京:状态 = 3,4,-->定时任务:状态=5--->结束 异常流程:一条待处理的的记录生成以后,马上被定时任务处理,加载到内存, ...

  7. python面试的100题(10)

    18.反转一个整数,例如-123 --> -321 class Solution(object): def reverse(self,x): if -10<x<10: return ...

  8. 计数器IP核

    Quartus II提供的LPM_couter IP核的使用 FPGA设计方式: 原理图,Verilog HDL设计方式,IP核输入方式 创建IP核 点击TOOLS—IP catalog-libray ...

  9. 【转】Git常用命令指南

    1.git init 初始化一个Git仓库,git init –bare example.git创建一个裸仓,即没有工作区的git仓库.2.添加文件到Git仓库,分两步:git add <fil ...

  10. Java 字符串、数值与16进制相互转化

    字符串.数值与16进制相互转化 首先创建一个工具类: package c; public class DataUtils { /* * 字节数组转16进制字符串 */ public static St ...