↑httpd服务配置↑

http: HyperText Transfer Protocol: 超链接文本协议,监听在tcp80端口。

http:应用层协议,客户端请求报文(request)→服务器端响应报文(response)

http:事务一个请求以及与其对应的响应报文。

http:缓存机制分为(私有缓存)和(公共缓存)

http的响应码:

1xx:信息性状态码

100, 101

2xx:成功状态码

200:OK

3xx:重定向状态码

301:永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向

302:临时重定向,显式重定向, Location响应首部的值为新的URL

304:Not Modified

4xx:客户端错误状态码

404: Not Found

5xx:服务器端错误状态码

500: Internal Server Error

502: Bad Gateway

504:Gateway Timeout

一次http事务的完成过程:

建立连接→接受请求→处理请求→获取资源→构建响应→回送响应→记录日志

http是被高度模块化的DSO:MPM:Multipath Processing Module分为三个模块:

       prefork模块      worker模块         event模块
  一个进程响应一个请求 一个进程生成多个线程,一个线程响应一个请求 事件驱动模式,也可以理解成多线程

httpd的配置文件:

      服务脚本       运行目录        配置文件
/etc/rc.d/init.d/httpd      /etc/httpd /etc/httpd/conf/httpd.conf
      扩展配置     网页文件目录           CGI
/etc/httpd/conf.d/*.conf     /var/www/html   /var/www/cgi-bin/

配置文件的构成:主服务器和虚拟主机不能同时启用

全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身的工作属性

虚拟主机:虚拟主机及属性定义

修改配置文件使其生效命令:

service  httpd  reload 立即生效;而修改监听的地址和端口通常需要重启服务

service  httpd  start|stop|restart|

配置文件语法测试命令:

service httpd configtest 或 httpd -t 还是后边这个好记

1.配置所选用的MPM的属性:

配置使用编译进不同MPM的httpd,编辑/etc/sysconfig/httpd配置文件,定义如下行:

HTTPD=/usr/sbin/httpd.worker

MPM:多道处理模块

prefork:一个进程响应一个请求;

主进程功能

(1)绑定特权端口

(2)派发或回收子进程

(3)读取分析主配置文件

worker:一个进程生成多个线程,一个线程响应一个请求

event:多线程工作模式,减少等待时间

2.配置服务器支持keep-alived保存链接时间:

   保持连接是否开启    链接超时时间      最大请求链接
   KeepAlive {On|Off   KeepAliveTimeout  MaxKeepAliveRequests 

3.配置加载的模块:

LoadModule foo_module modules/mod_foo.so

下面我们就来配置一个web服务:

 

tar xf apr-1.4.6.tar.bz2                                  #httpd依赖包
./configure --prefix=/usr/local/apr  make && make install #编译安装
tar xf  apr-util-1.5.2.tar.bz2                            #这个也的装
./configure --prefix=/usr/local/apr-util   --prefix=/usr/local/apr-util     --with-apr=/usr/local/apr         #编译安装
yum install   pcre-devel                   #依赖包
tar xf   httpd-2.4.6.tar.bz2               #httpd源码包
./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=event
#检查httpd模块
make && make install  #编译安装
ln -sv  /usr/local/apache/include  /usr/include   #链接头文件到系统
echo /usr/local/apache/bin > /etc/ld.so/.conf.d/httpd.conf #指定二进制文件路径
vim /etc/profile.d/http.sh               #添加环境变量
export  PATH=/usr/local/apache/bin:$PATH #设置环境变量
. /etc/profile.d/http.sh                 #重新载入
cp httpd  httpd24                        #cp服务脚本
apachectl=/usr/local/apache/bin/apachectl#编辑服务脚本的启动程序
httpd=${HTTPD-/usr/local/apache/bin/httpd#编辑服务脚本的httpd路径
/var/run/httpd/httpd.pid                 #添加主配置文件的pid路径
chkconfig  --add  httpd24                #添加服务运行
[root@yulong init.d]# service  httpd24 restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
启动成功 搞定

 

 

上面这个是默认主页,下面通过虚拟主机配置来进行访问

1.先把主配置文件里面的主服务器给禁用掉,就是DocumentRoot

2.开启虚拟主机模块:# Virtual hosts
Include /etc/httpd24/extra/httpd-vhosts.conf

3.我们编译安装的httpd默认虚拟主机配置文件在/etc/httpd24/extra/httpd-vhosts.conf

4.在文件最下方添加如下内容:

<VirtualHost *:80>                     #虚拟主机监听的端口号
 DocumentRoot "/web/like"               #网页文件的存放路径
 ServerName    www.qq.com              #要访问的服务名字 
ErrorLog "/usr/local/apache/log"         #错误日志存放路径,可以自己定义的
CustomLog "/usr/local/apache/log" common  #被访问的日志,也可以自己定义的
<Directory /web/like>                 #定义的目录标签

 AllowOverride none                  #是否允许覆盖
 Require ip  172.16.0.0/16            #允许那个IP段访问
</Directory>
</VirtualHost>

 

 

 

你可能感兴趣的:(httpd)