你好,游客 登录 注册 搜索
背景:
阅读新闻

httpd2.2常见配置及功能

[日期:2017-10-22] 来源:Linux社区  作者:大天使彦 [字体: ]

httpd 2.2常见配置

要配置http服务的配置文件,先备份一下,养成良好习惯,如果误操作导致http服务起不来,就可以将备份的主配置文件重新覆盖一下

httpd配置文件的组成:有三大部分组成,其实配置文件里面的内容放的顺序没有规定,之所以把它划分为三部分是为了查看更加清晰

# grep "Section" /etc/httpd/conf/httpd.conf

### Section 1: Global Environment 全局配置

### Section 2: 'Main' server configuration 主服务器配置

### Section 3: Virtual Hosts 虚拟主机

配置格式:directive value

directive: 不区分字符大小写

value: 为路径时,是否区分大小写,取决于文件系统

了解http服务的配置文件是学好http服务的基础,下面我们就一起来看一下http服务的配置文件有哪些功能

  1. 解决启动httpd服务时报错的问题

在启动http服务时,总会有一些错误,如图:

修改httpd服务的配置文件

vim /etc/httpd/conf/httpd.conf,进入到配置文件之后搜索ServerName,然后按照格式随便添加一个域名就行了

然后再重启服务,这样就没有报错了

2、显示服务器版本信息

 

ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full

ServerTokens Prod[uctOnly] Server: Apache

ServerTokens Major: Server: Apache/2

ServerTokens Minor: Server: Apache/2.0

ServerTokens Min[imal]: Server: Apache/2.0.41

ServerTokens OS: Server: Apache/2.0.41 (Unix)

ServerTokens Full (or not specified): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

This setting applies to the entire server and cannot be enabled or disabled on a virtualhost-by-virtualhostbasis.

After version 2.0.44, this directive also controls the information presented by the ServerSignaturedirective.

建议使用:ServerTokens Prod,这时因为别人可以通过远程来查看你的服务器版本信息,知道了你的服务器版本信息,就可以针对你的服务器版本来攻击你,使用了Prod,就会隐藏你的服务器版本信息

curl -I 192.168.10.135 可以显示服务器版本信息

修改版本信息(修改配置文件)

vim /etc/httpd/conf/httpd.conf,进入到配置文件后,搜索ServerTokens,如图:

改完之后,在重新加载配置文件,service httpd reload,再次查看服务器版本信息

服务器版本隐藏

3.修改监听的IPPort

 

Listen [IP:]PORT

(1) 省略IP表示为本机所有IP

(2) Listen指令至少一个,可重复出现多次

Listen 80

Listen 8080

在httpd服务的配置文件当中,监听的端口默认为80端口,你也可以人为的修改端口,比如修改成9527端口

重新加载httpd服务service httpd reload,再查看一下端口号ss -ntl

没有80端口,此时监听http服务的是9527端口,此时你在访问时就要指定端口号了,不然会访问失败

当然你也可以将改端口号绑定在指定的本机IP地址上,不指定就默认绑定在本机的所有IP地址上,如图:将80端口绑定在本机的192.168.10.135上,将9527端口绑定在172.17.0.182

然后再重新加载httpd服务,查看端口号

这样别人访问时就必须指定端口号了,因为192.168.10.135绑定在80端口上,不指定就默认为80端口,所以能访问成功,而172.17.0.182绑定在9527端口上,这时你不指定就不能访问了

示例:

Listen 192.168.1.100:8080

Listen 80

查看服务对应的端口

4.持久连接

 

Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认关闭持久连接

断开条件:数量限制:100

时间限制:以秒为单位,httpd-2.4 支持毫秒级

副作用:对并发访问量较大的服务器,持久连接功能会使用有些请求得不到响应

折衷:使用较短的持久连接时间

设置:KeepAlive On|Off

KeepAlive Timeout15

MaxKeepAlive Requests100

测试:telnet WEB_SERVER_IP PORT

GET /URL HTTP/1.1

Host: WEB_SERVER_IP

如果不配置http服务配置文件的话,默认只能访问一个资源,就断开连接

http服务配置文件将KeepAlive off改为KeepAlive on

再去访问资源时就能够连续访问多个资源,而不断开连接

5、MPM(Multi-Processing Module)多路处理模块

 

prefork, worker, event(试验阶段)

httpd-2.2不支持同时编译多个模块,所以只能编译时选定一个;rpm安装的包提供三个二进制程序文件,分别用于实现对不同MPM机制的支持

确认方法:

psaux | grep httpd

默认为/usr/sbin/httpd, prefork模式

查看静态编译的模块

httpd -lhttpd.worker -l

查看静态编译及动态装载的模块

httpd –Mhttpd.worker -M

动态模块路径

/usr/lib64/httpd/modules/动态模块路径

 

更换使用的httpd程序:

vim /etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.worker

重启服务生效

pstree -p|grep httpd查看进程和线程

prefork的默认配置:

<IfModule prefork.c>

StartServers     8 开启的服务器(表现为开启了http服务,运行了8httpd主程序)

MinSpareServers     5 最小空闲服务器

MaxSpareServers     20 最大空闲服务器

ServerLimit 256 最多进程数,最大20000

MaxClients 256 最大并发

MaxRequestsPerChild 4000 子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放(0时永远不释放)

</IfModule>

worker的默认配置:

<IfModule worker.c>

StartServers 4

MaxClients 300

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0 无限制

</IfModule>

将来开启了http服务就会运行4httpd.worker程序,每个主程序包含25个线程,所以总共有100个线程,但是支持最多的空闲线程只有75个,所以要杀死一个httpd.worker程序,所以当你开启了http服务,就只有3httpd.worker程序运行

测试性能

ab -c 100 -n 1000 http://192.168.10.135/a.jpg总共1000个请求访问a.jpg,并发同时能够访问100个,注意:访问的页面尽量大一些,不然无法测试性能

ll /var/www/html

1.prefork,将主程序改为httpd

经过几次测试,prefork每秒能够处理的次数大约为520

2.测试worker,将主程序改为httpd.worker

经过几次测试,worker每秒能够处理的请求次数大约为512

由此可以看出preforkwork的性能差不多

 

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2017-10/147903p2.htm

linux
相关资讯       httpd2.2  httpd2.2配置 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款