web服务之httpd2.2及2.4配置详解02

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

http2.2 相关配置



1. httpd status页面的展示

查看status_module模块是否装载

[[email protected] 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

时间: 2024-10-11 07:36:43

web服务之httpd2.2及2.4配置详解02的相关文章

基于Spring Cloud的微服务构建学习-3 Spring Cloud Eureka配置详解

配置详解 在Eureka的服务治理体系中,主要分为服务端与客户端.服务端为服务注册中心,而客户端为各个提供接口的微服务应用.当部署高可用注册中心时,每个服务端也已经成为了客户端,因此,在使用Spring Cloud Eureka的过程中,我们所做的配置内容几乎都是对Eureka客户端配置进行的操作,所以了解这部分的配置内容,对于用好Eureka非常有帮助. 而Eureka服务端更多类似于一个现成产品,大多数情况下,我们不需要修改它的配置信息. Eureka客户端配置分类 服务注册相关配置,包括服

springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解

一.Zuul的路由端点 当@EnableZuulProxy与SpringBoot Actuator配合使用时,Zuul会暴露一个路由管理端点/routes.借助这个端点,可以方便.直观地查看以及管理Zuul的路由. /routes端点的使用非常简单,使用GET方法访问该端点,即可返回Zuul当前映射的路由列表:使用POST方法访问该端点就会强制刷新Zuul当前映射的路由列表(尽管路由会自动刷新,Spring Cloud依然提供了强制立即刷新的方式). 由于spring-cloud-starter

web服务之httpd-2.2配置详解01

本文旨在复习httpd2.2常用配置.复习http协议相关知识.httpd2.2配置文件相关配置介绍.配置httpd的身份验证.配置httpd虚拟主机 等等. 知识储备: http协议知多少? http协议: HTTP:hyper text transfer protocol,超文本传输协议,是互联网上应用最为广泛的一种网络协议.HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准.通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接.HTTP

第二十天 TCP 及socket通信原理、http协议及web服务、httpd核心配置详解

一.TCP及socket通信原理详解 二.http协议及web服务原理(一) 三.http协议及web服务原理(二) 四.httpd核心配置详解 1.tcp.udp是一种传输协议,实现进程地址标记,套接字是一个虚拟设备,用来表明主机上的某个进程      众所周知:0-1023:管理员才有权限使用,永久地分配给某应用使用(由IANA分配)      注册端口:1024-41951:只有一部分被注册,分配原则上非特别严格.      动态端口或私有端口:41952-65535:由内核分配临时端口,

Apache httpd(apache2)服务配置详解,Mac下设置虚拟主机部署多个web项目,及反向代理部署Java项目

Apache httpd服务配置详解 查看版本:httpd -v Server version: Apache/2.4.33 (Unix) Server built:   Apr  3 2018 17:54:07 文件路径:/etc/apache2/httpd.conf # 服务目录(全局配置)用于指定Apache的安装路径,# 此选项参数值在安装Apache时系统会自动把Apache的路径写入ServerRoot "/usr" # 设置互斥对象的目录# Mutex default:/

Rsync服务配置详解,实现服务器间数据同步!

1.1 什么是rsync? rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次传送.rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝. 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件.SSH情况下,rsync客户端运行程序必须同

Web.config配置详解【转 】

一.认识Web.config文件 Web.config   文件是一个XML文本文件,它用来储存   ASP.NET   Web   应用程序的配置信息(如最常用的设置ASP.NET   Web   应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的   Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置.如果你想修改子目录的配置设置,你可以在该子目录下新建一个   Web.co

.Net中Web.config 配置详解

花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual Studio 中的“网站”->“Asp.Net 配置”选项. 设置和注释的完整列表在 machine.config.

redis服务部署及配置详解

Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器. Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为"全