httpd是Apache 超文本传输协议 (HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。20世纪90年代初,国家超级计算机应用中心NCSA开发,1995年开源社区发布apache(a patchy server)
2 httpd特性:
.高度模块化:core + modules
.DSO: Dynamic Shared Object动态加/卸载
.MPM:multi-processing
module多路处理模块
3 httpd功能特性
.虚拟主机:基于IP、Port、FQDN来创建虚拟主机,可以在一台物理服务器上搭建多个网站
.CGI:Common
Gateway Interface,通用网关接口
网关解决了不同的网络或者不同的协议燃脊察之间的通信,相当于是翻译的作用,这里是一个通用的概念
正向代理:为客户端访问外部网络提供服务,主要是提供了缓存,同时也可以进行用户行为控制
反向代理:起到了调度的作用,同时也可以做行为控制,nginx可以作为反向代理服务器,haproxy是专业的反向代理服务器
.负载均衡:根据用户的访问量来控制将请求分发到哪一台服务器上
.路径别名
.丰富的用户认证机制:如打开页面后d出用户名和密码,一般不用web提供的,都是公司自己定制实现
basic
digest
.支持第三方模块
4 Httpd安装
.版本
CentOS6: 2.2
CentOS7: 2.4
.安装方式:
rpm:centos发行版,稳定,建议使用
编译:定制或特殊需求,如软件版本有漏洞,要通过源码编译安装实现,或者定制自己的特定需求功能
.CentOS 6程序环境:httpd-2.2
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
/etc/httpd/conf/httpd.conf配置了Include
conf.d/*.conf这句话,表示模块可以单独写在/etc/httpd/conf.d/这个路径下,写出独立的配置文件,也可以加载出模块这里也可以看出,如果要额外添加配置,增加功能,可以直接写在/etc/httpd/conf.d/这个路皮茄径下的模块,这样要删除也比较好删。当主配置文件和子配置文件都有相同的配置是,如果同一字段的配置有冲突,默认是以主配置文件生效的,原因是在主配野搜置文件中include的子配置文件这句配置在配置DocmentRoot"/app/website"之前,默认是后面的配置生效,所以DocmentRoot"/app/website"这行配置比子配置优先,覆盖了前面的配置
检查配置语法:
httpd –t
service httpd configtest
5 httpd自带的工具程序
.httpd自带的工具程序
htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
apachectl:httpd自带的服务控制脚本,支持start和stop
这个工具类似dns的rndc这个工具
apachectl这是一个脚本
apxs:httpd-devel包提供,扩展httpd使用第三方模块工具
rotatelogs:日志滚动工具
access.log -->access.log,access.1.log -->access.log, acccess.1.log, access.2.log依次增加log,最新的log放在文件access.log里,旧的log会依次备份
suexec:访问某些有特殊权限配置的资源时,临时切换至指定用户身份运行
6 httpd的压力测试工具
.httpd的压力测试工具.ab来自httpd-tools服务包
.ab, webbench, http_load, seige
.Jmeter开源
.Loadrunner商业,有相关认证
.tcpcopy:网易,复制生产环境中的真实请求,并将之保存
.ab [OPTIONS] URL
来自httpd-tools包
ab测试的是最大性能,所以实际情况下,可能不是最大性能在处理http请求
-n:总请求数
-c:模拟的并行数
-k:以持久连接模式测试
ulimit –n #调整能打开的并发文件数,例子ulimit -n 2048 调整为2048.ulimit -a可以查看所有参数
7 CentOS 6 httpd程序环境
.服务脚本:/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
.服务控制和启动:
chkconfighttpdon|off
service{start|stop|restart|status|configtest|reload}httpd
端口号默认是80
.站点网页文档根目录:
/var/www/html
.模块文件路径:其中/etc/httpd下的modules是软链接的关系
modules ->../../usr/lib/httpd/modules
/etc/httpd/modules
/usr/lib64/httpd/modules
CentOS 6 httpd程序环境
.主程序文件:
/usr/sbin/httpd,默认用的是httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event
.主进程文件:
/etc/httpd/run/httpd.pid
这个是服务启动的时候才会生成,服务器停止的时候就删掉,如果已经存在同名文件,启动时候就会覆盖掉这个进程
.日志文件目录:
/var/log/httpd
access_log:访问日志
error_log:错误日志
.帮助文档包:
httpd-额外的文档包,建议要安装,否则要到官网上才能看到
yum install httpd-manual,然后要重启服务或者重新加载配置才能使用
service httpd reload然后在自己搭建的apache就可以直接访问,如 http://172.18.50.75/manual/
进程文件:apache.exe进程名称:apache
描述:apache.exe是apachehttp服务器软件的程序。它快速、可靠、可通过简单的api扩展,perl/python解释器可被编译到服务器中,而且完全免费,完基毕全开放源代码。如果你需要创建一个每天有数百万人访问的web服务器,apache可能是扮含最佳选搏缺芹择。
你可以删除pctutu.html文件来解决
名称掘扒而已。本质上是一样的。
httpd 名头太大,很多人往往就以 Apache 来统称 httpd 。
在不同的 Linux 发行版里,所用的命令也不一样。岩散老
举例,Redhat系(包括 CentOS,Fedora)是这样的:
service httpd start/stop/restart
Debian系粗升(包括 Ubuntu)可以是这样的
/etc/init.d/apache2 start/stop/restart
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)