【我的技术我做主】Apache Httpd Web服务器详解

一.简介

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器.Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

Apache官网:http://apache.org/

Apache Httpd网站:http://httpd.apache.org/

Apache httpd Web服务器特性

1.事先创建进程

2.模块多元化,各种功能模块的添加

3.可以支持SSL技术

4.支持多种方式的虚拟主机配置

虚拟主机常用配置主要分为:

基于IP的虚拟主机

基于端口的虚拟主机

基于域名的虚拟主机

5.支持多种方式的HTTP认证

6.支持URL重写;等多种特性

二.httpd安装方式

主要安装方式分为两种:一种为rpm包安装;另一种为源码包安装

安装httpd软件包时,请现将SELinux处于permssive或disabled,否则可能某些服务无法启动

修改SELinux配置文件/etc/selinux/config,修改“SELINUX=permssive”

httpd软件包安装:yum -y install httpd   (yum的搭建不多说了,可以查看本博客yum源的搭建)

三.Httpd端口,目录介绍

httpd默认端口为tcp/80端口;ssl 协议端口为443/tcp端口

httpd工作的默认根目录为/etc/httpd

http的配置文件目录为/etc/httpd/conf

httpd主配置文件为httpd.conf文件

以 /etc/httpd/conf.d/*.conf结尾的配置文件均为httpd.conf的主配置文件的组成部分

Apache Httpd模块化目录为/etc/httpd/modules

Apache Httpd日志目录为/etc/httpd/logs -->/var/log/httpd  指向/var/log/httpd目录文件

日志文件分为:访问日志access_log;错误日志err_log 两种

Apache Httpd网页目录为/var/www目录

/var/www目录下分为html目录和cgi-bin目录:html目录为静态网页目录如html语言开发的;

cgi-bin目录为动态网页目录如asp,php,jsp,Java等开发的网站程序。

CGI简介:

Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。cgi是外部应用程序(CGI程序)与Web服务器之间通信的接口,CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

四.httpd主配置文件/etc/httpd/conf/httpd.conf 详解

### Section 1: Global Environment  全局配置
        ServerRoot "/etc/httpd"  httpd服务器根目录

PidFile run/httpd.pid       httpd服务进程pid,保存在httpd.pid文件中
        KeepAlive Off                  是否启用长链接【on  or off】使用长连接可以有效的提高性能

MaxKeepAliveRequests 100       在启用长连接后用户最多一次请求的资源数,0表示无限制请求

KeepAliveTimeout 15      长连接的断开时常

# prefork MPM 多处理模块

mpm_winnt  windows下多线程处理机制;

prefork Linux下预先生成进程处理机制,一个请求用一个进程进行响应;

worker多个线程处理,一个请求一个线程响应;

event一个进程处理多个请求

可以使用httpd -l命令查看当前Linux所支持那些mpm处理模块
     httpd服务器默认使用worker处理模块,如果更改其他处理模块可修改httpd启动脚本来实现,httpd启动脚本配置文件为/etc/sysconfig/httpd,修改配置文件中#HTTPD=/usr/sbin/httpd.worker

<IfModule prefork.c>
        StartServers       8                  服务器启动时启动8个空闲进程
        MinSpareServers    5             最少空闲5个进程接受用户请求
        MaxSpareServers   20           最大空闲进程
        ServerLimit      256                为MaxClients指定最大上限,修改时当前服务器必须关闭服务器kill所有进程,在重新启动
        MaxClients       256               最大客户端数,最多只允许256个客户端同时请求,不能超过Serverlimit限定数  
        MaxRequestsPerChild  4000 一个进程最多响应4000次的用户请求            
        </IfModule>
        <IfModule worker.c>
        StartServers         4                 服务器启动时启动4个进程
        MaxClients         300              最大客户端数,最多只允许300个客户端同时请求
        MinSpareThreads     25          最小空闲线程
        MaxSpareThreads     75         最大空闲线程
        ThreadsPerChild     25            每 一个进程生成25个线程
        MaxRequestsPerChild  0         不做限定的用户请求
        </IfModule>

#Listen 12.34.56.78:80

Listen 80  Httpd服务器默认监听端口80,可以同时监听多个端口
        Listen 8080    或  127.0.0.1:8080

### Section 2: ‘Main‘ server configuration  server主配置

ServerAdmin [email protected]               服务器管理员

ServerName www.example.com:80      服务器Name

DocumentRoot "/var/www/html"         网站文档根目录,可直接修改目录路径

如要修改默认www文档根目录,必须要定义<Directory />Apache服务和功能是否被允许和访问

也可修改相应的配置文件中<Directory "/var/www/html"> 中的目录即可。

自定义<Directory />,格式如下
                <Directory />
                Options FollowSymLinks
                AllowOverride None
                </Directory>

Options选项参数

# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn‘t give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks

Indexes  索引网站目录,在网站安全中Indexes不可启用

None      不支持任何选项

FollowSymLinks      允许符号链接所指向的源文件

Includes    允许执行服务端包含SSI

ExecCGI     允许运行

MultiViews   多视图模式,耗费资源

ALL                支持所有选项

AllowOverride参数

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit

AllowOverride None  允许覆盖服务器控制访问列表

AuthConfig 用户认证,提供用户帐号密码提供登录

Order:用于定义基于主机的访问功能的Ip,网络地址或主机定义访问控制

 列子:如有一网站不想被192.168.100.1 和192.168.100.4 两个Ip地址访问如何配置Order?

AllowOverride None
                            Order deny,allow
                            Deny from 192.168.100.1 192.168.100.4

httpd -t 检测配置文件语法是否正确

 纯文本浏览器   elinks 127.0.0.1

                        elinks -dump 127.0.0.1  打开网站后直接退出

                         elinks -source 127.0.0.1 显示网站源码

列子:基于用户认证,本地有baishouqijia 、白手起家、zhang,3个用户在访问网站时必须输入帐号密码进行访问,否则无法访问,该如何做?配置文件如下

                    

      创建htpasswd中的用户帐号密码

        [[email protected] httpd]# htpasswd -c -m /etc/httpd/htpasswd baishouqijia
       [[email protected] httpd]# htpasswd -m /etc/httpd/htpasswd 白手起家
      [[email protected] httpd]# htpasswd -m /etc/httpd/htpasswd zhang
     [[email protected] httpd]# httpd -t
    [[email protected] httpd]# /etc/init.d/httpd restart
   [[email protected] httpd]#
   -m选项md5加密方式

   -c选项创建htpasswd文件,创建第一个用户时使用,第二个用户则无效加-c,否则重新创建htpasswd文件并替换第一次添加用户时所创建的文件

测试:

   开始登录提示输入帐号密码 

输入帐号密码后

      

删除用户 htpasswd -D

        DirectoryIndex index.html index.html.var   首页索引文件,如果一个网站程序中都包含,自左往右开始索引

ErrorLog logs/error_log  错误日志目录
        LogLevel warn                日志级别

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
        LogFormat "%{Referer}i -> %U" referer
        LogFormat "%{User-agent}i" agent
                %h    客户端地址

%l     远程主机登录名称

%u    登录网站时登录的用户名称

%t     日志产生的时间

%r     请求报文的第一行

%>s   最后一次的请求的状态码

%b     响应报文的大小

%{Referer}i  网站来源

%{User-Agent}i  客户端浏览器的类型

Alias /icons/ "/var/www/icons/"  路径别名

列子:在/mnt/www/bbs下创建index.html 并使用别名/bbs访问

    

测试:


“51cto十周年博客活动”正在进行,你也来参加吧~

   活动地址http://51ctoblog.blog.51cto.com/26414/1679643

时间: 2024-12-14 18:51:17

【我的技术我做主】Apache Httpd Web服务器详解的相关文章

nginx高性能web服务器详解(1)--安装nginx

1. 下载 本次使用nginx-0.1.2.3 版本,下载地址 http://nginx.org/en/download.html  新发布版本 http://nginx.org/download  历史版本 2.上传到linux服务器 sz -bey nginx-0.1.2.3.tar.gz 3.解压 3.1 建立目录  mkdir nginx_123 3.2 解压 tar -zxvf nginx-0.1.2.3.tar.gz ./nginx_123/ 4.配置编译环境 nginx源代码的编译

Apache httpd.conf配置详解

常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot directory-path 如: ServerRoot "/usr/local/apache-2.2.6" 注意,此指令中的路径最后不要加 / . 2. Listen:指定服务器监听的IP和端口.默认情况下Apache会在所有IP地址上监听.Listen是Apache2.0以后版本必须

nginx web服务器详解1(转)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeloda.blog.51cto.com/2033581/1285332 大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O模型的具体实现 八.Apache 的工作模式 九.支持高并发的Web服务器 十.Nginx 详解 一.

Linux中创建RAID5卷并搭建web服务器详解

北大青鸟的实验项目 实验任务:使用Linux的RHEL6.5版本64位的操作系统搭建web服务器,创建RAID5卷并挂载到web目录下. 实验过程:1.创建RHEL6.5操作系统,并且配置主机名.IP地址192.168.1.100/24等实验要求. 2.添加4块大小为30G的虚拟磁盘,做RAID5卷,可用空间为60GB. 3.关闭iptables防火墙和SElinux. 4.打开win7虚拟机进行IP地址192.168.1.200配置,并测试互联互通. 5.搭建网站服务器,名称为web.bene

apache httpd.conf 参数详解

由于网站需要,需要配置多个虚拟主机,但是apache主机的参数太多,记不住,下面做一下总结 归纳: ServerRoot:apache安装位置 Listen:服务器监听的端口号 LoadModule:设置动态加载的DSO模块 IfModule:IfModule容器,使用IfModule容器可以封装仅在条件满足时才会处理的指令,根据指 定的模块是否加载决定条件是否满足,语法格式<IfModule [!] 模块>指令</IfModule> ServerAdmin:管理员的邮件地址 Se

关于Nginx高性能Web服务器详解一书的一处错误

详情:此书第52页中提到ngx_http_gzip_module为标准HTTP模块.而在第53页中此模块变成了可选HTTP模块,自相矛盾,查了官网,此模块确实为标准HTTP模块,即会默认安装. The ngx_http_gzip_module module is a filter that compresses responses using the "gzip" method. This often helps to reduce the size of transmitted da

《Nginx高性能Web服务器详解》

第1章 Nginx初探 第2章 Nginx服务器的安装部署 第3章 Nginx服务器架构初探 第4章 Nginx服务器的高级设置 第5章 Nginx服务器的Gzip压缩 第6章 Nginx服务器的Rewrite功能 第7章 Nginx服务器的代理服务 第8章 Nginx服务器的缓存机制 第9章 Nginx服务器的邮件服务 第10章 Nginx源码结构 第11章 Nginx的基本数据结构 第12章 Nginx的启动初始化 第13章 Nginx的时间管理 第14章 Nginx的内存管理 第15章 N

【转】Apache 的 httpd.conf 配置详解

Apache 的 httpd.conf 配置详解 原文链接 http://www.php100.com/html/webkaifa/apache/2009/0418/1192.html ServerRoot /usr/local ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下. ScoreBoardFile /var/run

入门篇:Ubuntu用apache做web服务器

一.安装Apache Ubuntu提供了3个apache2的软件包,它们分别是apache2-mpm-worker.apache2-mpm-prefork.apache2-mpm-event.如果你在安装Ubuntu操作系统<入门篇:ubuntu server 安装教程>的时候你选择安装了LAMP包的话,那么安装的是apache2-mpm-prefork.如果你没有选择安装LAMP包,安装完系统之后,执行下面的命令安装apache2这个软件包时,安装的是apache2-mpm-worker:s