httpd

本文介绍了Apache HTTP服务器的主程序httpd,包括其作为后台进程的功能、版本特性(httpd-2.2和httpd-2.4)、基础概念如MPM、httpd自带工具以及curl命令的使用。此外,还涵盖了httpd的编译安装和虚拟主机配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.httpd简介
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中做为服务运行。

2.httpd版本
主要介绍httpd的两大版本:
httpd-2.2
httpd-2.4

3.httpd特性

  • httpd-2.2 特性:
    事先创建进程
    按需维持适当的进程
    模块化设计,核心比较小,各种功能通过模块添加(包括PHP),支持运行时配置,支持单独编译模块
    支持多种方式的虚拟主机配置,如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等
    支持https协议(通过mod_ ssI模块实现)
    支持用户认证
    支持基于IP或域名的ACL访问控制机制
    支持每目录的访问控制(用户访问默认主页时不需要提供用户名和密码,但是用户访问某特定目录时需要提供用户名和支持URL重写
    支持MPM (Multi Path Modules,多处理模块)。用于定义httpd的工作模型(单进程、 单进程多线程、多进程、多进程单线程、多进程多线程)
  • httpd-2.4 特性:
    MPM支持运行DSO机制(Dynamic Share Object,模块的动态装/卸载机制),以模块形式按需加载
    支持event MPM, event MPM模块生产环境可用
    支持异步读写
    支持每个模块及每个目录分别使用各自的日志级别
    每个请求相关的专业配置,使用来配置
    增强版的表达式分析器
    支持毫秒级的keepalive timeout
    基于FQDN的虚拟主机不再需要Name Virtual Host指令
    支持用户自定义变量
    支持新的指令(Allow Override List)
    降低对内存的消耗

4.httpd基础
4.1httpd自带的工具

工具功能
htpasswdbasic 认证基于文件实现,用到的账户密码生成工具
apachectlhttpd自带的服务控制脚本,支持start,stop,restart
apxs由httpd-devel 包提供的,扩展httpd使用第三方模块的工具
rotatelogs日志滚动工具
suexec访问某些有特殊权限配置的资源时,临时切换至指定的用户运行的工具
abapache benchmark ,httpd的压力测试工具

4.2web相关的命令
curl是基于URL语法在命令行方式下的传输工具,它支持FTP,FTPS,HTTP,HTTPS等协议

curl 支持的功能:
·https 认证
·http 的POST/PUT 等方法
·ftp 上传
·kerberos 认证
·http 上传
·代理服务器
·cookies
·用户名/密码认证
·下载文件断点传续
·socks5 代理服务器
·通过http 代理服务器上传文件到ftp服务器

语法

//语法:curl [option] […]
常用的option:
-A……//设置用户代理发送给服务器
-basic……//使用Http 基本认证
–tcp-nodelay …… //使用TCP_NODELAY选项
-e …… //来源网址
–cacert ……//CA证书
–compressed ……//要求返回时压缩格式
-H ……//自定义请求首部信息传递服务器 
-I ……//只显示响应报文首部信息 
–limit-rate ……//设置传输速度 
-o……//把输出写到文件中

httpd命令

-l……//查看静态编译模块,列出核心中编译了那些模块
-M……//输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块
-v……//显示httpd版本,然后退出
-V……//显示httpd和apr/apr-util的版本和编译参数,然后退出
-X……//以调试模式运行httpd
-t……//检查配置文件是否有错误

5.编译安装

//关闭防火墙与SELINUX
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0

**//安装前请确保本地仓库或网络源有一个可以用**
**//安装开发环境**
[root@localhost ~]# yum groupinstall "Development Tools"
……安装过程略
[root@localhost ~]# groupadd -r apache 
[root@localhost ~]# useradd -r -g apache apache
[root@localhost ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
……安装过程略
**//下面下载安装包请确保电脑有网(如果有下载好的安装包可直接上传即可。)**
**//下载并安装apr-1.4+和apr-util-1.4+**
[root@localhost ~]# cd /usr/src/ 
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@localhost src]# ls 
apr-1.6.5.tar.bz2  apr-util-1.6.1.tar.bz2  debug  kernels 
[root@localhost src]# tar xf apr-1.6.5.tar.bz2 
[root@localhost src]# tar xf apr-util-1.6.1.tar.bz2
[root@localhost src]# ls 
apr-1.6.5  apr-1.6.5.tar.bz2  apr-util-1.6.1  apr-util-1.6.1.tar.bz2  debug  kernels 
[root@localhost src]# cd apr-1.6.5 
[root@localhost apr-1.6.5]# vim configure 
		........   
		cfgfile="${ofile}T"    
		trap "$RM \"$cfgfile\"; exit 1" 1 2 15    
		# $RM "$cfgfile"        //将此行添加注释
		.........
[root@localhost apr-1.6.5]# ./configure  --prefix=/usr/local/apr 
……配置过程略
[root@localhost apr-1.6.5]# make && make install 
……编译安装过程略

[root@localhost apr-1.6.5]# cd /usr/src/apr-util-1.6.1 
[root@localhost apr-util-1.6.1]# ./configure   --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 
……配置过程略 
[root@localhost apr-util-1.6.1]# make && make install 
……编译安装过程略

**//下载httpd(如有下载完成的安装包可直接上传)**
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.38 .tar.bz2 
……下载过程略
[root@localhost ~]# ls 
httpd-2.4.38.tar.bz2 
[root@localhost ~]# tar xf httpd-2.4.38.tar.bz2
[root@localhost ~]# ls 
httpd-2.4.38.tar.bz2   httpd-2.4.38
[root@localhost ~]# cd httpd-2.4.38 
[root@localhost httpd-2.4.38]#./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
……配置过程略
[root@localhost httpd-2.4.37]# make && make install 
……编译安装过程略

**//创建软连接**
[root@localhost ~]# echo  "export  PATH=/usr/local/apache/bin:$PATH"  >  /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config
**//取消ServerName前面的注释**
[root@localhost ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf 
**//启动服务(80端口为httpd服务端口)**
[root@localhost ~]# apachectl start
[root@server ~]# ss  -antl
State       Recv-Q Send-Q     Local Address:Port                    Peer Address:Port              
LISTEN      0      128                    *:22                                 *:*                  
LISTEN      0      100            127.0.0.1:25                                 *:*                  
LISTEN      0      128                   :::80                                :::*                  
LISTEN      0      128                   :::81                                :::*                  
LISTEN      0      128                   :::22                                :::*                  
LISTEN      0      100                  ::1:25                                :::*                                        :::*                  

编辑虚拟主机

[root@localhost ~]# vi  /etc/httpd24/httpd.conf 
文件最后一行添加下面内容
<VirtualHost *:80>   虚拟主机配置起始
    DocumentRoot "/usr/local/apache/htdocs/"         虚拟主机发布目录
    ServerName  yang.example.com    虚拟主机完整域名
    ErrorLog "logs/11-error_log"       错误日志路径以及文件名
    CustomLog "logs/11-access_log" common     访问日志路径及文件名
</VirtualHost>   虚拟主机配置结束
配置Apache页面
[root@localhost ~]# cd  /usr/local/apache/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# echo  hello world >index.html
检查语法
[root@localhost ~]# apachectl -t
Syntax OK
重启服务
[root@localhost ~]# apachectl restart

访问页面测试(用ip地址访问)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值