Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。[2]

Apache 的进程名字是 httpd

Apacheweb服务器软件拥有以下特性:

Apache Server配置界面
Apache Server配置界面
1.支持最新的HTTP/1.1通信协议
2.拥有简单而强有力的基于文件的配置过程
3.支持通用网关接口
4.支持基于IP和基于域名的虚拟主机
5.支持多种方式的HTTP认证
6.集成Perl处理模块
7.集成代理服务器模块
8.支持实时监视服务器状态和定制服务器日志
9.支持服务器端包含指令(SSI)
10.支持安全Socket层(SSL)
11.提供用户会话过程的跟踪
12.支持FastCGI
13.通过第三方模块可以支持JavaServlets

相关模块

1.SSO Module - LemonLDAP[1]
LemonLdap 是 Apache 的一个实现了 Web SSO 的模块,可处理超过 20 万的用户。
2.并发限制模块 - limitipconn
limitipconn 是一个 Apache 的模块,用来限制每个 IP 的并发连接数。支持 Apache 1.x 和 2.x。
3.日志监控模块
Apache Live Log 是一个 Perl 编写的模块,可以在浏览器上直接实时的通过 Ajax 技术浏览和监控 Apache 的 日志文件。
4.负载均衡模块
mod_backhand 是一个Apache 的负载平衡模块 。它定义了每个请求的HTTP重定向在一个异构的Apache服务器群集。每个请求的处理,并贯穿了一套“候选人的职能” ,以确定哪些服务器是最适合的回应。请求然后代理到该服务器。设施已到位,让你写您自己的动态加载决策算法。一切有关的要求和当前可用的资源可用于决策过 程。
5.图像处理模块
mod_gfx 是一个对图像进行即时处理的 Apache 模块,提供很多灵活的接口,包括:
Resizing
Resampling
Watermarking
Cropping
以后还将添加如下功能:
Add Text
Rotate
Draw Polygons

  1. 压缩模块
    mod-gzip-disk 是一个使用磁盘进行存储预压缩页面的 Apache 模块,与 mod-gzip 不同的是不需要每次请求的时候重新压缩。
    使用方法:
    gunzip -c mod_gzip_disk-0.5.tar.gz | tar -xvpf -
    cd mod_gzip_disk
    sudo make module
  2. 音乐模块
    mod_musicindex 是一个 Apache 用来处理音频文件的模块,类似 Perl 的 Apache::MP3,支持音频格式包括:MP3, Ogg Vorbis, FLAC, or MP4 / AAC ,可根据不同的音频属性进行排序列表、在线播放、下载、构建播放列表和搜索等,提供 RSS 和 Podcast 输出,支持多 CSS 和包下载。
    8.LDAP 认证模块
    LDAP 是轻量级目录访问协议,基于 X.500 标准,但更简单,并可根据需要进行定制。mod_psldap 是 Apache 用来执行 LDAP 认证和授权的模块。同时可通过 Web 界面进行简单的 LDAP 管理
    9.带宽限制模块
    mod_cband 是一个用来限制请求占用带宽的 Apache 模块。
    10.CGI V8 引擎包
    v8cgi 是一个很小的 C ++ 和 JS 文件集合,允许开发者在服务器端使用 JS 的模块,基本功能包括:IO, GD, MySQL, Sockets, templates, FastCGI and Apache module.

安装/配置/使用

apache 的安装无外乎两种方式:源代码安装和二进制包安装。这两种安装类型各有特色,二进制包安装不需要编译,而源代码安装则需要先配置编译再安装,二进制包安装在一个固定的位置下,选择固定的模块,而源代码安装则可以让你选择安装路径,选择你想要的模块。本文主要介绍二进制DEB包安装方式(此方法只适用于Debian GNU/Linux 及其衍生版)。
系统:GNU/Linux Debian/etch
Apache当前版本: 2.4.2
1、安装:
使用以下命令安装:

2、 配置文件说明
在Debian下, 安装完成后, 软件包为我们提供的配置文件位于/etc/apache2目录下:
tony@tonybox:/etc/apache2$ ls -l
total 72
-rw-r--r-- 1 root root 12482 2006-01-16 18:15 apache2.conf
-rw-r--r-- 1 root root 748 2006-01-16 18:05 envvars
-rw-r--r-- 1 root root 268 2006-06-30 13:56 httpd.conf
-rw-r--r-- 1 root root 12441 2006-01-16 18:15 magic
-rw-r--r-- 1 root root 10 2006-06-30 13:56 ports.conf
-rw-r--r-- 1 root root 2266 2006-01-16 18:15 README
drwxr-xr-x 2 root root 4096 2006-01-16 18:15ssl
其中
apache2.conf
为apache2服务器的主配置文件, 查看此配置文件, 你会发现以下内容

Include module configuration:

Include /etc/apache2/mods-enabled/.load
Include /etc/apache2/mods-enabled/
.conf

Include all the user configurations:

Include /etc/apache2/httpd.conf

Include ports listing

Include /etc/apache2/ports.conf

Include generic snippets of statements

Include /etc/apache2/conf.d/[^.#]*
由此可见, apache2 根据配置功能的不同, 对配置文件进行了分割, 这样更利于管理
conf.d
下为配置文件的附加片断,默认情况下, 仅提供了 charset 片断,
tony@tonybox:/etc/apache2/conf.d$ cat charset
AddDefaultCharset UTF-8
如有需要我们可以将默认编码修改为 GB2312, 即文件的内容为: AddDefaultCharset GB2312
httpd.conf
是个空文件
magic
文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它。
ports.conf
则为服务器监听IP和端口设置的配置文件,
tony@tonybox:/etc/apache2$ cat ports.conf
Listen 80
mods-available
目录下是一些。conf和。load 文件, 为系统中可以使用的加载各种模块的配置文件, 而mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件来加载模块。同时系统还提供了两个命令 a2enmod 和 a2dismod用于维护这些符号连接。这两个命令由 apache2-common 包提供。命令各式也非常简单: a2enmod [module] 或 a2dismod [module]
sites-available
目录下为配置好的站点的配置文件, sites-enabled 目录下则是指向这些配置文件的符号连接, 系统通过这些符号连接来起用站点 sites-enabled目录下的符号连接附有一个数字前缀, 如000-default, 这个数字用于决定启动顺序, 数字越小, 启动优先级越高。 系统提供了两个命令 a2ensite 和 a2dissite 用于维护这些符号连接。这两个命令由 apache2-common 包提供。
/var/www
默认情况下将要发布的网页文件应该置于/var/www目录下,这一默认值可以同过主配置文件中的DocumentRoot 选项修改。
注意:如果你在是windows下应用Apache服务器,并且已经安装IIS,那么在安装Apache时请注意给Apache换个端口来监听比如8080,否则Apache占用的端口会和IIS冲突,造成Apache服务器不能正常启动。

3.启用SSL让apache更安全
apache加密TCP/IP网络产品的标准是SSL ,对于Internet上普遍使用的超文本传输协议(HTTP)而言,其加密后的协议称为 HTTPS,缺省采用443端口。HTTPS数据是加密以后传输的,因此能有效保护在网络上传输的个人隐私信息。
对apache配置支持SSL需要经过如下的操作:
第一步:下载所需的软件并解开到 /usr/local/src 目录
Apache 1.3.24
Mod_ssl 2.8.8-1.3.24
Openssl-0.9.6c
每个 mod_ssl 的版本和特定的 Apache 版本有关,因此要下载相对应的 mod_ssl 版本。
第二步:编译和安装
安装 OpenSSL 到 /usr/local/ssl: # pwd
/usr/local/src/openssl-0.9.6c

./config

make

make test

make install

安装 mod_ssl,编译进 Apache 的源码树: # pwd
/usr/local/src/mod_ssl-2.8.8-1.3.24

./configure --with-apache=/usr/local/src/apache_1.3.24
--with-ssl=/usr/local/ssl

以 DSO 方式编译 Apache: # pwd
/usr/local/src/apache_1.3.24

./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE
--enable-module=ssl --enable-shared=ssl

make

创建 SSL 证书,证书需要从商业的认证权威机构或者从内部的 CA 得到。
执行下面的步骤生成证书: # pwd
/usr/local/src/apache_1.3.24

make certificate TYPE=custom

生成证书时会提示两遍下面的信息:<> 内为示范数据。
第一遍: Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第一遍会产生一个用于测试的 CA。"Common Name" 可以为任意文本。第二遍 Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第二遍产生的是实际可用的证书,能被商业机构或者内部 CA 认证, "Common Name" 为 Web 服务器的主机名。
安装并运行 Apache # pwd
/usr/local/src/apache_1.3.24

make install

启动 Apache ,并测试 # pwd
/usr/local/apache/bin

./apachectl stop

./apachectl startssl

在浏览器上检查你的站点正常与否即可,至此即可让apache支持安全的SSL。
在Apache 1.4以后的版本,我们还可以用以下命令完成服务的完美重启:

./apachectl graceful

Apache 服务器 基础知识小结的更多相关文章

  1. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  2. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  3. Linux下Apache(HTTP)基础知识梳理-运维笔记

    HTTP介绍: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...

  4. 2008-03-18 22:58 oracle基础知识小结

    oracle 数据类型: 字段类型                 中文说明                                                  限制条件         ...

  5. nginx基础知识小结

    配置文件讲解: #user nobody; #开启进程数 <= CPU数 worker_processes 1; #错误日志保存位置 #error_log logs/error.log; #er ...

  6. javascript DOM 操作基础知识小结

    经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的.   DOM添加元素,使用节点属性  <!DOCTYPE html PUBLIC ...

  7. java 基础知识小结

    1. java 有三个求整的函数 math.floor ()  (floor 是地板的意思)  向下求整 math.ceil ()  (ceil 是天花板的意思 ) 向上求整 math.round() ...

  8. Redis基础知识小结

    Redis是一个高性能的key-value型数据库.Redis能读的速度是110000次/s,写的速度是81000次/s ,性能极高.Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全 ...

  9. 1.Python基础知识小结:

    Python3下载地址:https://www.python.org/downloads/windows/ python3 windows安装参考地址: https://jingyan.baidu.c ...

随机推荐

  1. Xshell配置ssh使用密钥公钥(publice key)登录

    ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥( ...

  2. 【转】[Android] NDK独立编译——独立工具链

    转载地址:https://blog.csdn.net/suningning/article/details/74510125

  3. Ubuntu使用操作记录/笔记

    1.如何取得图形界面下的ROOT权限? 先alt+f2,然后 gksu nautilus 或者 kdesudo dolphin 2.如何使用Qt插件在Qt中进行ROS开发 http://blog.cs ...

  4. PHP 下载中文乱码解决

    利用 iconv() 函数解决乱码 $file_name = iconv("utf-8","gb2312",$file_name); 原文链接 http://m ...

  5. jquery zTree异步搜索的例子--搜全部节点

    参考博客: https://segmentfault.com/a/1190000004657854 https://blog.csdn.net/houpengfei111/article/detail ...

  6. Java-Runoob-高级教程-实例-时间处理:03. Java 实例 - 获取年份、月份等

    ylbtech-Java-Runoob-高级教程-实例-时间处理:03. Java 实例 - 获取年份.月份等 1.返回顶部 1. Java 实例 - 获取年份.月份等  Java 实例 以下实例演示 ...

  7. docker私库harbor的搭建

    1.文件下载 # wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.1.tgz 安装官网 ...

  8. [UE4]给Widget增加参数,Pre Construct和Construct的区别

    使用Pre Construct事件可以在编辑器中实时显示出选择的背景图片. 如果使用的是“Construct”事件则只能在游戏运行时把图片显示出来.

  9. [UE4]碰撞机制

    应用于两种情况: 一.射线追踪,LineTrace 1.射线来自某个Trace Channel 2.Trace Channel 默认有两个:Visibility(不是可见的意思.只是Channel名称 ...

  10. React 懒加载组件

    //组件第一次初始化的时候加载. import React, {PropTypes} from 'react'; //import AppComposer from './views/App/AppC ...