本文继续浅谈httpd2.2相关配置,httpd-2.4的变化及相关配置,LAMP相关知识


http2.2 相关配置


1. httpd status页面的展示

    查看status_module模块是否装载

[root@web01 tmp]# httpd -M|grep status
 status_module (shared)
Syntax OK


全局配置文件打开如下配置即可,也可以在virtualhost中配置

<Location /server-status>
    SetHandler server-status
    Order allow,deny
    Allow from 172.16.0.0/16 #status页面显示了web服务的运行信息,建议设置访问控制
</Location>


2. httpd服务进程权限管理

    user / group

    指定以哪个用户身份运行httpd服务进程   

     User apache
     Group apache


3. 使用mod_deflate模块压缩页面优化传输速度

    配置如下:将下面配置放到全局配置文件httpd.conf

# mod_deflate configuration
SetOutputFilter DEFLATE

# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
 
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9
 
# Netscape 4.x has some problems.
BrowserMatch ^Mozilla/4  gzip-only-text/html
 
# Netscape 4.06-4.08 have some more problems
BrowserMatch  ^Mozilla/4\.0[678]  no-gzip
 
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E]  !no-gzip !gzip-only-text/html

    适用场景:

(1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持;

(2) 压缩适于压缩的资源,例如文件文件;

  

4. httpd 压力测试工具

    ab、webbench、http_load、loadrunner、等。

    这里介绍一下ab(ApacheBench)

    ab [options] url

        -n:总请求数

        -c:模拟的并发数

        -k:以持久连接模式 测试

    # ab -c 10 -n 1000 http://www.linux.com/index.html

    

 

httpd-2.4基本应用 


1.httpd-2.4新特性

    (1) MPM支持运行为DSO机制;以模块形式按需加载;

    (2) event MPM生产环境可用;

    (3) 异步读写机制;

    (4) 支持每模块及每目录的单独日志级别定义;

    (5) 每请求相关的专用配置;

    (6) 增强版的表达式分析式;

    (7) 毫秒级持久连接时长定义;

    (8) 基于FQDN的虚拟主机也不再需要NameVirutalHost指令;

    (9) 新指令,AllowOverrideList;

    (10) 支持用户自定义变量;

    (11) 更低的内存消耗;

2.httpd-2.4新模块

    (1)mod_proxy_fcgi
    (2)mod_proxy_scgi
    (3)mod_remoteip


3.安装httpd-2.4

    centos6安装httpd-2.4

        依赖与apr-1.4+,apr-util-1.4+

            apr:apache portable runtime(可移植运行时程序)

         centos6 要先编译安装apr-1.4+ 和 apr-util-1.4+,然后在编译安装httpd-2.4 

    centos7安装httpd-2.4

        centos7 base源中自带了httpd-2.4,直接yum安装即可

        yum install httpd


4.centos7中httpd-2.4的配置

4.1 程序运行环境

    配置文件:

  /etc/httpd/conf/httpd.conf
        /etc/httpd/conf.d/*.conf
        模块相关的配置文件:/etc/httpd/conf.modules.d/*.conf

    systemd unit file:

 /usr/lib/systemd/system/httpd.service

    主程序文件:

  /usr/sbin/httpd
        httpd-2.4 支持MPM的动态切换

    日志文件:

    /var/log/httpd:
            access_log:访问日志
            error_log:错误日志

    站点目录:

     /var/www/html

    模块文件路径:

 /usr/lib64/httpd/modules

    服务控制:

    systemctl  enable|disable  httpd.service
    systemctl  {start|stop|restart|status}  httpd.service


4.2 切换使用MPM

    编辑配置/etc/httpd/conf.modules.d/00-mpm.conf文件

    启用要使用的MPM相关的LoadModule指令,然后重启服务即可


4.3 基于IP的访问控制

    httpd2.4中,使用Require指令进行访问控制,不在支持2.2中的allow,deny.

    允许所有主机访问:Require all granted

    拒绝所有主机访问:Require all denied

    

    控制特定的ip访问:

        Require ip IPADDR: 授权指定来源的主机访问

        Require not ip IPADDR: 拒绝


    控制特定主机访问:

        Require host HOSTNAME: 授权指定来源的主机访问

        Require  not  host  HOSTNAME:拒绝


    配置模块:在Directory标签中

<RequireAll>

    Require all granted

    Require not ip 172.16.100.1

</RequireAll>

   

4.4 基于域名的虚拟主机配置

    httpd-2.4中基于FQDN的虚拟主机也不再需要NameVirutalHost指令;

    模版示例:

<VirtualHost *:80>
    ServerName www1.linux.com
    DocumentRoot "/web/vhosts/www1"
    CustomLog "/var/log/httpd/www1/www1.access_log" combined
    ErrorLog "/var/log/httpd/www1/www1.error_log"
    <Directory "/web/vhosts/www1">
        Options None
        AllowOverride None
        <RequireAll>
            Require all granted
            Require not ip 10.0.0.0/24
        </RequireAll>
    </Directory>
</VirtualHost>

    注意:任意站点目录下的页面只有显示授权才能被访问


4.5 持久连接

    httpd2.4中支持毫秒级的持久连接

    KeepAliveTimeout  #ms

    

    毫秒级持久连接时长定义,文件自行创建

      /etc/httpd/conf.d/ka.conf
            KeepAlive On
            KeepAliveTimeout  500ms
            MaxKeepAliveRequests 100


LAMP相关知识


1. web资源类型        

    静态资源:原始形式与相应结果一致

    动态资源:原始形式通常为程序文件,需要运行后将结果响应给客户端。


2. CGI:Common Gateway Interface

   通用网关接口Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准


3. LAMP的实现方式

    方案1:httpd(prefork)+libphp5.so+mysql

    方案2:httpd(event)+libphp5-zts.so+mysql

    方案3:httpd+fpm(php)+mysql


4. centos6上简单实现LAMP

    采用yum安装的方式:

    # yum install httpd php php-mysql mysql-server
    # service mysqld start
    # service httpd start

    

5.centos7上简单实现LAMP

    采用yum安装的方式:

    # yum install httpd php php-mysql mariadb-server
    # systemctl start mariadb.service httpd.service

    php配置文件:

        /etc/php.ini、/etc/php.d/*.ini


    测试httpd与php的连接性:

    <?php 
        phpinfo();
    ?>

    

    测试php与mysql的连接性

    <?php
        $conn = mysql_connect('172.16.100.1','testuser','testpass');
        if($conn)
            echo "OK";
        else
            echo "Failure";
    ?>



感谢MageEdu