1. 云栖社区>
  2. PHP教程>
  3. 正文

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

作者:用户 来源:互联网 时间:2017-12-01 09:57:32

webhttpd配置服务详解2.22.4

web服务之httpd2.2及2.4配置详解02 - 摘要: 本文讲的是web服务之httpd2.2及2.4配置详解02, 本文继续浅谈httpd2.2相关配置,httpd-2.4的变化及相关配置,LAMP相关知识http2.2 相关配置1. httpd status页面的展示 查看status_module模块是否装载[[email protected] t

本文继续浅谈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 configurationSetOutputFilter DEFLATE# Restrict compression to these MIME typesAddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/x-javascriptAddOutputFilterByType DEFLATE text/javascriptAddOutputFilterByType 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 problemsBrowserMatch  ^Mozilla/4/.0[678]  no-gzip # MSIE masquerades as Netscape, but it is fineBrowserMatch /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/httpdhttpd-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 NoneAllowOverride None<RequireAll>Require all grantedRequire not ip 10.0.0.0/24</RequireAll> </Directory></VirtualHost>
注意:任意站点目录下的页面只有显示授权才能被访问

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

KeepAliveTimeout #ms


毫秒级持久连接时长定义,文件自行创建
/etc/httpd/conf.d/ka.confKeepAlive OnKeepAliveTimeout  500msMaxKeepAliveRequests 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";elseecho "Failure"; ?>


感谢MageEdu
本文出自 “Hello,Linux” 博客,转载请与作者联系。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索web , httpd , 配置 , 服务 , 详解 , 2.2 2.4 ,以便于您获取更多的相关知识。