httpd安装和使用

httpd功能特性
虚拟主机 IP、Port、FQDN
CGI:Common Gateway Interface,通用网关接口
反向代理
负载均衡
路径别名
丰富的用户认证机制 basic  digest
支持第三方模块
新特性
MPM支持运行为DSO机制;以模块形式按需加载
event MPM生产环境可用
异步读写机制
支持每模块及每目录的单独日志级别定义
每请求相关的专用配置
增强版的表达式分析式
毫秒级持久连接时长定义
基于FQDN的虚拟主机不需要NameVirutalHost指令
新指令,AllowOverrideList
支持用户自定义变量
更低的内存消耗	   
	

Httpd介绍  
CentOS 6: 2.2  CentOS 7: 2.4(6与7有的文件路径)
CentOS 7程序环境:httpd-2.4
	配置文件:/etc/httpd/conf/httpd.conf    /etc/httpd/conf.d/*.conf   
	配置文件:/etc/sysconfig/httpd(不用)
	日志文件目录:/var/log/httpd/access_log: 访问日志 error_log:错误日志
	主程序文件:/usr/sbin/httpd
	主进程文件: /etc/httpd/run/httpd.pid
	模块文件路径: /etc/httpd/modules    /usr/lib64/httpd/modules
	站点网页文档根目录:/var/www/html
	服务控制和启动:systemctl enable|disable httpd.service    systemctl {start|stop|restart|status|reload} httpd.service
	服务单元文件: /usr/lib/systemd/system/httpd.service
	帮助文档包:httpd-manual
	检查配置语法:httpd –t
	查看静态和动态的模块: httpd -l  httpd –M


httpd自带的工具程序
	htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
    apachectl:httpd自带的服务控制脚本,支持start和stop
	rotatelogs:日志滚动工具
	httpd的压力测试工具
		ab, webbench、http_load、seige、
		Jmeter 开源  
		Loadrunner 商业,有相关认证
		tcpcopy:网易,复制生产环境中的真实请求,并将之保存
		ab  



以下是httpd命令详解。
用法
httpd [-hlLStvVX][-c ][-C ][-d<服务器根目录>][-D<设定文件参数>][-f<设定文件>]

-d serverroot   将ServerRoot指令设置初始值为serverroot。它可以被配置文件中的ServerRoot指令所覆盖。其默认值是/usr/local/apache2 。
-f config   	在启动中使用config作为配置文件。如果config不以"/"开头,则它是相对于ServerRoot的路径。其默认值是conf/httpd.conf 。
-k start|restart|graceful|stop|graceful-stop  发送信号使httpd启动、重新启动或停止。更多信息请参见停止Apache。
-C directive 	在读取配置文件之前,先处理directive的配置指令。
-c directive    在读取配置文件之后,再处理directive的配置指令。
-e level   		在服务器启动时,设置LogLevel为level 。它用于在启动时,临时增加出错信息的详细程度,以帮助排错。
-E file    		将服务器启动过程中的出错信息发送到文件file 。
-l  输出一个静态编译在服务器中的模块的列表。它不会列出使用LoadModule指令动态加载的模块。
-L  输出一个指令的列表,并包含了各指令的有效参数和使用区域。
-M  输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块。
-t	仅对配置文件执行语法检查。程序在语法解析检查结束后立即退出,或者返回"0"(OK),或者返回非0的值(Error)。如果还指定了"-DDUMP_VHOSTS",则会显示虚拟主机配置的详细信息。
-v  显示httpd的版本,然后退出。
-V  显示httpd和APR/APR-Util的版本和编译参数,然后退出。

  

安装httpd-2.4.39
apr-1.7.0.tar.bz2 (Apache可移植运行库) 
apr-util-1.6.1.tar.bz2
httpd-2.4.39.tar.bz2

1 合并源码文件
tar xvf apr-1.7.0.tar.bz2 
tar xvf apr-util-1.6.1.tar.bz2 
tar xvf httpd-2.4.39.tar.bz2 
mv  apr-1.7.0 httpd-2.4.39/srclib/apr  (安装httpd方法二)
mv  apr-util-1.6.1 httpd-2.4.39/srclib/apr-util(安装httpd方法二)

2 安装相关的开发环境包
yum install gcc prce-devel openssl-devel expat-devel -y

3 编译安装
安装apr-1.6.2
	cd apr-1.6.2
	./configure --prefix=/usr/local/apr
	make && make install
安装apr-util-1.6.0
	cd ../apr-util-1.6.0
	./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
	make -j 2 && make install
安装httpd方法一:
useradd -s /sbin/nologin  apache
	cd httpd-2.4.39/
	./configure 
	--prefix=/usr/local/httpd    	#指定apache的安装路径
	--with-mpm=prefork				#Apache的三种工作模式:event,worker,prefork,指定启用mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker 2.4版本是event.
	--enable-so  					#这个是支持动态共享模块
	--enable-rewrite  				#支持URL重写
	--enable-ssl   					#支持ssl     或--with-ssl=/usr/local/openssl  	#这个是指定openssl的安装位置
	--enable-cgi   					#启用cgi
	--enable-modules=most           #指明要静态编译到httpd二进制文件的模块 all或者most,all代表包含所有的模块 most代表大部分的模块
	--enable-mods-shared=most       #指明要以DSO方式编译的模块,all代表全部,most代表大部分  --enable-mpms-shared=all 启用MPM所有支持的模式,这样event,worker,prefork就会以模块化的方式安装,要用哪个就在httpd.conf里面配置就好了
	--with-pcre                     #支持 pcre或       使用 --with-pcre=/usr/local/pcre  
	--with-zlib                     #使用 zlib 压缩库或 使用--with-z=/usr/local/zlib    
	--with-apr=/usr/local/apr       #指定 apr 的安装路径
	--with-apr-util=/usr/local/apr-util  #指定 apr-util 的安装路径
	--enable-expires:激活彧通过配置文件控制 HTTP 的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css 等内容,提供客户端浏览器缓存的设置。这个是 apache 调优的一个重要选项之一。
	make -j 4 && make install

安装httpd方法二 :
cp -r apr-1.6.2 httpd-2.4.39/srclib/apr
cp -r apr-util-1.6.0 httpd-2.4.39/srclib/apr-util
 cd httpd-2.4.39/
 ./configure \
	--prefix=/usr/local/httpd \
	--enable-so \
	--enable-ssl \
	--enable-cgi \
	--enable-rewrite \
	--with-zlib \
	--with-pcre \
	--with-included-apr \
	--enable-modules=most \
	--enable-mpms-shared=all \
	--with-mpm=prefork 
 make && make install


4 环境变量和启动
	echo 'PATH=/usr/local/httpd/bin:$PATH' > /etc/profile.d/httpd.sh

5启动脚本三种方法
5.1自定义启动脚本
	 vim /etc/rc.d/rc.local
	/usr/local/httpd/bin/apachectl start
	chmod +x /etc/rc.d/rc.local
	. /etc/rc.d/rc.local

5.2其它机子复制过的改版本启动文件  需要模块直接:httpd -M | grep systemd
vim /usr/lib/systemd/system/httpd.service
	[Service]
	Type=forking
	#EnvironmentFile=/etc/sysconfig/httpd
	ExecStart=/usr/local/httpd/bin/httpd $OPTIONS -k start
	ExecReload=/usr/local/httpd/bin/httpd  $OPTIONS -k graceful
	ExecStop=/bin/kill -WINCH ${MAINPID}

5.3利用apachectl做启动脚本(centos 6 )
   cp  /usr/local/httpd/bin/apachectl   /etc/init.d/httpd
   sed -i '1a # chkconfig: 35 85 21'  /etc/init.d/httpd
   sed -i '2a # description: apache 2.4.39'  /etc/init.d/httpd 
   chkconfig  --add httpd
   chkconfig httpd on
   systemctl   restart httpd
   systemctl  status  httpd
   systemctl  stop   httpd


5.创建专用用户和组(编辑配置文件)
useradd -s /sbin/nologin -r apache

  

posted @ 2022-08-18 17:46  yuanbangchen  阅读(120)  评论(0编辑  收藏  举报