Httpd(即Apache)作为当今最流行的的web server之一,在互联网中起着至关重要的作用。
Httpd的安装(操作系统为Centos6)
Httpd的安装方式通常有两种,一直是直接利用rpm包进行直接安装,另一种是源码编译安装。这里我们先用rpm包直接安装就行了
[root@localhost ~]# yum install httpd
安装好之后我们可以看下生成了哪些文件
[root@localhost ~]# rpm -ql httpd
几个比较重要的文件:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:
/etc/sysconfig/httpd
模块目录:
/etc/httpd/modules: 链接文件
/usr/lib64/httpd/modules
主程序:
/usr/sbin/httpd: prefork
/usr/sbin/httpd.event: event
/usr/sbin/httpd.worker: worker
日志文件目录:
/var/log/httpd
access_log: 访问日志
error_log: 错误日志
持久连接(又称为长连接)
持久连接即是在规定的一定时间或者规定的请求数内,客户端向服务器端请求资源时,不必每次都重新经过TCP三次握手建立连接,而是直接请求,这样就大大的节约了时间。但它并非适合所有请求者,对于一些只请求一次或者次数很少的用户,这就变成了占用资源,因此长连接直接影响到了服务器的性能。
Timeout 60
在客户端和服务器端TCP三次握手的时候,当客户端发起请求,服务器端响应请求之后,服务器端等待客户端确认的时间,如果客户端在时间内未确认,则服务器将关闭该次TCP握手。
KeepAlive {On|Off}
持久连接是否启用
MaxKeepAliveRequests 100
服务器单个持久连接最大的请求数,超过即断开
KeepAliveTimeout 15
单个持久连接最大连接时长,超过即断开
MPM参数
这里定义的是httpd的工作模式(注意:只能使用其中一种)
httpd在linux下默认使用prefork, 当然这是我们可以自己定义的。
prefork : httpd使用进程来提供服务,每个进程在同一时间提供一次服务。
worker : httpd在启动的时候,会由root进程派生出几个子进程,每个子进程中会有固定数量的线程,到时候提供服务的,就是这些线程,也就是说一个进程能够同时提供多次服务。
<IfModule prefork.c> StartServers 8 是httpd刚启动时,root进程创建的子进程数 MinSpareServers 5 最少的空闲子进程数 MaxSpareServers 20 最大的空闲子进程数 ServerLimit 256 服务器能接受的最大的并发请求数 MaxClients 256 客户端最大并发请求的数量 显然它必须小于serverlimit MaxRequestsPerChild 4000 每个子进程最多可以接受的请求数,超过即KILL </IfModule> <IfModule worker.c> StartServers 4 是httpd刚启动时,root进程创建的子进程数 MaxClients 300 客户端最大并发请求的数量 MinSpareThreads 25 最少的空闲线程数 MaxSpareThreads 75 最大的空闲进程数 ThreadsPerChild 25 每个子进程最多可以生成的线程数 MaxRequestsPerChild 0 每个子进程可接受的请求数,0表示任意个 </IfModule>
指定监听的地址和端口
格式:Listen [IP:]PORT IP地址可以省略
端口是可以定义多个的,他并不是唯一的
一般httpd默认监听在80端口
DSO机制装载的模块
DSO即Dynamic Shared Object动态分享对象。
这里定义了系统装载的一些模块,其格式为
LoadModule Module_Name(模块名称)/path/to/Module_File
(模块路径,这里是相对路径,相对于前面定义的ServerRoot "/etc/httpd"目录下,当然也可以使用绝对路径)
如果你想添加模块的话,直接按照格式写在配置文件中即可;
当然,你不想启用的话可以直接通过#进行注释即可,保存后即可生效。
你也可以通过命令查看装载的模块信息
# httpd -D DUMP_MODULES
指定站点根目录
DocumentRoot "/var/www/html"
DocumentRoot定义了httpd服务器的站点根目录,你在互联网上访问该服务器时访问的都是该根目录下的内容;当然,路径也是可以自己定义的,默认一般都为/var/www/html
站点路径访问控制
这里的访问控制可以有2种方式:
基于本地文件系统路径:
<Directory "/path/to/somewhere"> </Directory>
(1) Options
Indexes: 当访问的路径下无默认的主页面,将所有资源以列表形式呈现给用户;
这项比较危险,一般不建议启用;当然如果作为文件服务器让别人下载文件的话可以启用。
FollowSymlinks: 跳跃符号链接,直接相当于访问符号链接指向的文件。
(2) AllowOverride
支持在每个页面目录下创建.htaccess用于实现对此目录中资源访问时的访问控制功能。
(3) Order
Deny为拒绝,allow为允许。网络地址格式较为灵活:
172.16
172.16.0.0
172.16.0.0/16
172.16.0.0/255.255.0.0
可以通过deny和allow的先后顺序不同来定义白名单和黑名单
例如:
order deny allow
deny 192.168.0.1
这样就定义了一个黑名单,除了192.168.0.1都可以访问
再如:
order allow deny
allow 172.16.0.0/16
这样就定义了个白名单,除了172.16.0.0网段的都不能访问
基于URL访问路径做访问控制
<Location "/path/to/URL"> </Location>
定义默认的主页面:
DirectoryIndex index.html index.html.var
DirectoryIndex可以定义服务器的默认主页面
这里需要解释的是:当通过互联网访问你的服务器时,访问的是某个路径,而非路径下的文件时,如果该路径下有对应的index.html或者index.html.var文件,则显示为该文件的内容,否则,则会根据站点访问控制里的options选项显示相应的内容。
配置日志功能
这里定义了错误日志以及访问日志,日志的等级,日志的格式等。
ErrorLog "/path/to/error_log" 错误日志路径
LogLevel {debug|info|notice|warn|error|crit|alert|emerg} 日志等级
LogFormat 日志格式
CustomLog "/path/to/access_log" LogFormat_Name 访问日志路径以及日志格式名称
下面是日志格式中一些选项的意义。
%h: 客户端地址
%l: 远程登录名,通常为-
%u: 认证时输入用户名,没有认证时为-
%t: 服务器收到 用户请求时的时间
%r:请求报名的起始行
%>s: 响应状态码
%b: 响应报文的长度,单位是字节
%{HEADER_NAME}i: 记录指定首部对应的值
路径别名
路径别名可以实现URL路径的映射,从而所访问的页面资源不再依赖于站点的根目录。
格式:
Alias /URL/ "/path/to/somewhere/"
CGI脚本
脚本的默认存放位置:/var/www/cgi-bin/
在浏览器中的访问格式:http://server/cgi-bin/
虚拟主机
虚拟主机可以分成3类
1、基于端口
2、基于IP
3、基于主机名
注意,使用虚拟的前提:取消主服务器,即注释主服务器的站点根路径指定:DocumentRoot
定义虚拟主机
NameVirtualHost IP:PORT
<VirtualHost IP:PORT>
ServerName
DocumentRoot
ServerAlias
ErrorLog
CustomLog
</VirtualHost>
配置文件语法检查:
httpd -t
service httpd configtest
配置示例:
<VirtualHost 172.16.249.57:80> 第一个和第二个是基于主机名的,第三个是基于端口的 ServerName www.a.org DocumentRoot "/web/a" 需要声明的是这些目录都要先创建起来,并且每个根目录下 </VirtualHost> 都有创建index.html文件,里面分别写上a,b,c <VirtualHost 172.16.249.57:80> ServerName www.b.net DocumentRoot "/web/b" </VirtualHost> <VirtualHost 172.16.249.57:8080> ServerName www.c.gov DocumentRoot "/web/c" </VirtualHost
转:http://wiggins.blog.51cto.com/8733640/1538289
相关推荐
httpd服务的配置文件,路径/etc/httpd/conf/httpd.conf
本教程将深入讲解如何配置Apache Server的Httpd配置文件以启用SSL443端口,并涵盖Odoo服务从8069端口重定向到443端口的设置。 首先,让我们了解SSL和端口443。SSL(Secure Socket Layer)是用于加密网络通信的协议...
4.3 创建httpd配置文件 在/etc目录下创建httpd.conf文件,并添加以下代码: I:index.php :指定httpd的默认网页文件 *.php:/usr/bin/php-cgi :指定PHP文件的解释器 4.4 修改php.ini文件 修改/etc/php.ini文件,...
本文将详细讲解如何在Linux环境下安装httpd,以及安装过程中所需的依赖包apr和apr-util。 首先,我们需要了解的是,apr(Apache Portable Runtime)是Apache软件基金会的一个项目,它提供了一个跨平台的库,包含了...
- `/etc/sysconfig/httpd`:httpd工作模式配置文件 通过`rpm -qc httpd`命令可以查看所有配置文件的位置。 #### 五、Apache的工作目录与日志 - **主程序**:`/usr/sbin/httpd` - **MPM模式默认程序**:`/usr/sbin/...
本篇文章将详细阐述Linux环境下Httpd服务的配置过程,包括Apache的安装、基本配置、用户个人主页的建立、访问控制以及虚拟主机的配置。 1. **Apache的安装** Apache的安装通常有两种方式:RPM包安装和源码包安装。...
在Linux环境下,配置CGI非常简单,只需要将CGI脚本放置在特定目录下,并设置好权限,mini_httpd就能自动识别并执行它们。 三、PHP集成 尽管mini_httpd本身体积小巧,但它并不缺乏对流行脚本语言PHP的支持。通过正确...
1)安装步骤详解:http://blog.csdn.net/magicalcode/article/details/45393115 2)欢迎大家关注我博客更多的精彩内容: http://blog.csdn.net/MagicalCode
本文将详细介绍如何在Linux系统上安装和配置httpd服务器,以及依赖的组件。 首先,我们来认识一下标题中提到的关键组件: 1. **httpd-2.4.4.tar.gz**:这是Apache HTTP Server的源代码包,版本为2.4.4。Apache...
httpd-ssl.conf
Linux httpd命令 Linux httpd命令是Apache HTTP服务器程序。 httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。 语法httpd [-hlLStvVX][-c][-C][-d][-D][-f] 参数说明: -c 在读取配置文件前,先执行...
1. **模块化设计**:Apache HTTPD 2.4.6采用模块化结构,允许用户根据需求选择和配置不同的功能模块,如mod_rewrite用于URL重写,mod_security用于Web应用防火墙,mod_deflate用于内容压缩等。 2. **事件模型**:此...
本文将详细探讨httpd 2.4.57版本的相关知识点,包括其特性、安装、配置和管理。 Apache HTTP Server 2.4系列引入了许多改进和新功能,其中2.4.57作为稳定版本,提供了安全性和性能优化。以下是这个版本的一些关键...
这里我们深入探讨一下“全部LINUX服务器配置资料”中涉及的几个关键知识点:Apache HTTPD配置、Linux下的软件管理以及Red Hat Fedora Core 5下的vsftp服务配置。 首先,Apache HTTPD(原名Apache HTTP Server)是...
Linux 下Httpd安装 Httpd 是一个流行的开源 Web 服务器软件,广泛应用于网站服务器和云计算平台中。在 Linux 环境下安装 Httpd 需要遵循一定的步骤,以下将详细介绍在 Linux 环境下如何安装 Httpd。 安装 Apache ...
Linux安装apache(httpd) ,所需的安装包、apr、apr-util、pcre、httpd包、源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),方便用户能更快的进行操作
Apache的配置文件`httpd.conf`决定了服务器如何响应HTTP请求。配置包括设置监听端口、虚拟主机、目录访问权限、日志记录等。 Samba服务器允许Linux与Windows系统之间进行文件和打印机共享。配置文件`smb.conf`定义...
Linux下的Apache HTTPD服务是构建Web服务器的核心组件,它的配置对于提供网络服务至关重要。以下是关于Linux_HTTPD服务配置过程的详细解析: 1. **安装Apache HTTPD服务**: - Linux系统通常提供RPM包安装方式,这...
这个压缩包文件“linux-httpd-2.4.49.tar.zip”包含了Apache HTTP服务器在Linux环境下的安装源代码,允许用户自定义配置并进行编译安装。 **Apache HTTP服务器介绍** Apache HTTP服务器,简称Apache,是一款免费、...
### Linux Apache环境多域名配置详解 #### 一、前言 在互联网开发中,单一服务器部署多个项目并分别对应不同的域名是一种常见的需求。这不仅能够提高服务器资源的利用率,还能帮助开发者更好地组织和管理不同类型...