• 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>

              

          

  • 相关阅读:
    UIButton(在代码中使用)
    UIButton的常见设置
    设置按钮的背景图片
    Java Web学习总结(15)——JSP指令
    Java Web学习总结(14)——JSP基础语法
    Java Web学习总结(14)——JSP基础语法
    Oracle学习总结(9)—— Oracle 常用的基本操作
    Oracle学习总结(9)—— Oracle 常用的基本操作
    Oracle学习总结(10)——45 个非常有用的 Oracle 查询语句
    Oracle学习总结(10)——45 个非常有用的 Oracle 查询语句
  • 原文地址:https://www.cnblogs.com/yuyangphpweibo/p/7825635.html
Copyright © 2020-2023  润新知