当前位置:文档之家› apache

apache

apache
apache

一、Apache简介

Apache是一种开源的HTTP服务器软件,可以在包括UNIX、Linux以及Windows 在内的大多数主流计算机操作系统中运行,由于其支持多平台和良好的安全性而被广泛使用。Apache由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,它的名字取自apatchy server的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善。

但由于Apache是开源软件,所以得到了开源社区的支持,不断开发出新的功能特性,并修补了原来的缺陷。经过多年来不断的完善,如今的Apache已是最流行的Web服务器端软件之一。Apache拥有以下众多的特性,保证了它可以高效稳定地运行。

支持几乎所有的计算机平台。

简单有效的配置文件。

支持虚拟主机。

支持多种方式的HTTP认证。

集成Perl脚本语言。

集成代理服务器模块。

支持实时监视服务器状态和定制服务器日志。

支持服务器端包含指令(SSI)。

支持安全Socket层(SSL)。

提供用户会话过程的跟踪。

支持PHP。

支持FastCGI。

支持Java Servlets。

支持通用网关接口。

支持第三方软件开发商提供的功能模块。

二、Apahce的发展

Apache源自由NCSA(University ofIllinois,Urbana-Champaign)所开发的httpd。在1994年中期,许多Web主管自行发展自己的外加功能及修正码。一小批的Web主管通过私人电子邮件聚集在一起来实现他们的改变(以"patches",即补丁的形式出现)。在1995年2月底,8位核心贡献者成立原始的 Apache组织(取自APAtCHE),1995年4月,Apache0.6.2公布。

在1995年5月到7月,一个新的服务器架构被开发出来(程序名为Shambhala),包含了模块结构及API。这个服务器架构是基于存储池的存储器配置及要调整的预设分支处理模式开发的。这个开发群体在7月份将此服务器架构转换到新的服务器上,并为Apache0.7.x新增特色,于8月推出了

Apache0.8.8。在一年之内,Apache 服务器超过了NCSA的httpd成为Internet 上排名第一的服务器。

Apache的强项是极大的市场占有率:Apache是今天网际网路金字招牌第一号,远远将竞争者抛在后面。特别是,Apache市场占有率表现出几个使对方望尘莫及的优势:

① 起源于HTTP协议--降低了用户加入协议来支援新的应用软件的门槛;

② 给UNIX/Linux带来生机--Apache走到哪里,UNIX/Linux就走到哪里;

③ 支援厂商的支持,为Apache提供的工具/模块持续成长。

特别是IBM宣布将把Apache作为其WebSpehre应用服务器的一部分,这一轰动的宣布被商业报纸称为是开放源代码软件的一次突破。

三、Apache模块化设计

Apache采用模块化的设计,模块安装后就可以为Apache内核增加相应的新功能。默认情况下Apache已经安装了部分的模块,用户也通过使用模块配置,自定义Apache服务器中需要安装哪些功能,这也是Apache灵活性的表现。如表16.1列出了Apache全部的默认模块和部分常用的非默认模块。

表16.1 Apache模块列表

四、Apache的configure参数详解

[root@test ]# ./configure --help

`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as

VAR=VALUE. See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:

-h, --help display this help and exit

--help=short display options specific to this package

--help=recursive display the short help of all the included packages

显示帮助信息然后退出。

使用short参数将只显示正在运行的当前脚本的选项,而不能列出适用于Apache配置脚本所运行的外部配置脚本的选项。

使用recursive参数将显示所有程序包的简短描述。

-V, --version display version information and exit

显示版权信息后退出。

-q, --quiet, --silent do not print `checking...' messages

--cache-file=FILE cache test results in FILE [disabled]

不显示脚本工作期间输出的”checking …”消息。

将检测的结构保存在文件里面,默认是关闭的,--cace-flie=FILE

-C, --config-cache alias for `--cache-file=config.cache'

等价于–cache-file=config.cache

-n, --no-create do not create output files

--srcdir=DIR find the sources in DIR [configure dir or `..']

configure脚本运行结束后不输出结果文件,常用于正式编译前的测试。

Installation directories:

--prefix=PREFIX install architecture-independent files in PREFIX [/usr/local/apache2]

安装体系相关的目录PREFIX ,也就Apache的安装目录。

[/usr/local/apache2] --exec-prefix=EPREFIX install

architecture-dependent files in EPREFIX

[PREFIX]

体系相关文件的顶级安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之间共享体系相关的文件。[PREFIX]

By default, `make install' will install all the files in

`/usr/local/apache2/bin', `/usr/local/apache2/lib' etc. You can specify

an installation prefix other than `/usr/local/apache2' using

`--prefix',

for instance `--prefix=$HOME'.

默认情况下,make install 将会把所有文件分别安装到

/usr/local/apache2/bin , /usr/local/apache2/lib 目录下。可以用–prefix 指定一个不同于/usr/local/apache2的安装前缀,比如:–prefix=$HOME 。

For better control, use the options below.

定义一个目录布局

Fine tuning of the installation directories:

--bindir=DIR user executables [EPREFIX/bin]

用户可执行目录DIR 。用于存放对网站管理员很有帮助的htpasswd, dbmmanage之类的支持程序。[EPREFIX/bin]

--sbindir=DIR system admin executables [EPREFIX/sbin]

系统管理员可执行目录DIR ,用于存放运行HTTP服务器所必须的httpd, apachectl, suexec之类的服务程序。[EPREFIX/sbin]

--libexecdir=DIR program executables [EPREFIX/libexec]

--sysconfdir=DIR read-only single-machine data [PREFIX/etc]

只读的单一机器数据目录DIR ,用于存放和mime.types之类的服务器配置文件。[PREFIX/etc]

--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]

可写的体系无关数据目录DIR 。虽然autoconf提供了该选项,但Apache 并未使用它。[PREFIX/com]

--localstatedir=DIR modifiable single-machine data

[PREFIX/var]

可写的单一机器数据目录DIR 。虽然autoconf提供了该选项,但Apache 并未使用它。

--libdir=DIR object code libraries [EPREFIX/lib]

对象代码库目录DIR 。[EPREFIX/lib]

--includedir=DIR C header files [PREFIX/include]

Apache的C头文件目录DIR 。[EPREFIX/include]

--oldincludedir=DIR C header files for non-gcc [/usr/include]

非gcc的C头文件目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。

--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]

--datadir=DIR read-only architecture-independent data [DATAROOTDIR]

Web服务器只读的体系无关数据目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。[PREFIX/share]

--infodir=DIR info documentation [DATAROOTDIR/info]

信息文档目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。[PREFIX/info]

--localedir=DIR locale-dependent data [DATAROOTDIR/locale]

--mandir=DIR man documentation [DATAROOTDIR/man]

手册文档目录DIR 。[EPREFIX/man]

--docdir=DIR documentation root

[DATAROOTDIR/doc/PACKAGE]

联机文档doc存储目录

--htmldir=DIR html documentation [DOCDIR]

Html文档目录

--dvidir=DIR dvi documentation [DOCDIR]

Dvi文档

--pdfdir=DIR pdf documentation [DOCDIR]

Pdf文档

--psdir=DIR ps documentation [DOCDIR]

Ps文档

System types:

--build=BUILD configure for building on BUILD [guessed]

指定编译工具所在系统的系统类型BUILD 。[config.guess脚本的检测结果]

--host=HOST cross-compile to build programs to run on HOST [BUILD]

指定Apache HTTP服务器将要运行的目标系统类型HOST 。[BUILD]

--target=TARGET configure for building compilers for TARGET [HOST]

TARGET类型的系统。虽然autoconf提供了该选项,但Apache并未使用它。[HOST]

Optional Features:

--disable-option-checking ignore unrecognized --enable/--with options

--disable-FEATURE do not include FEATURE (same as

--enable-FEATURE=no)

--enable-FEATURE[=ARG] include FEATURE [ARG=yes]

--enable-layout=LAYOUT

--enable-v4-mapped Allow IPv6 sockets to handle IPv4 connections

使用相同的套接字同时处理IPv4和IPv6的连接,也就是启用地址映射。在FreeBSD、NetBSD、OpenBSD以外的平台上是默认值。

--enable-exception-hook Enable fatal exception hook

允许在子进程崩溃以后启用一个钩子来运行异常处理程序。参见EnableExceptionHook指令

--enable-maintainer-mode Turn on debugging and compile time warnings

使用所有警告和调试符号编译源代码,请勿用于正式服务器,它会影响性能。

--enable-pie Build httpd as a Position Independent Executable

将httpd编译为位置独立的(Position Independent)可执行程序

--enable-modules=MODULE-LIST Space-separated list of modules to enable | "all" | "most"

五、编译安装Apache

1、获取软件包

https://www.doczj.com/doc/377828130.html,/download.cgi#apache24

2、解压软件包

[root@db Desktop]# tar -zxf httpd-2.2.25 -C /usr/src/

3、编译安装Apache

[root@db apr-1.5.1]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi --enable-ssl --enable-charset-lite --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/httpd/htdocs

[root@db apr-1.5.1]# make && make install

4、启动Apache

[root@db src]# /usr/local/httpd/bin/apachectl start

[root@db src]# netstat -tlnp | grep :80

5、将apache添加为系统服务

[root@db src]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@db src]# vim /etc/init.d/httpd

[root@db src]# chkconfig --add httpd

[root@db src]# service httpd stop

[root@db src]# netstat -tlnp | grep :80

[root@db src]# service httpd start

[root@db src]# netstat -tlnp | grep :80

tcp 0 0 :::80 :::* LISTEN 29455/httpd

[root@db src]#

六、Apache配置文件详解(本部分转至网友)

对于RedHat Linux系统,Apache的配置文件放在/etc/httpd/conf/目录下。如果是自行编译安装的Apache,则视编译时指定的目录路径而定,默认是

/usr/local/apache/conf。

在conf目录下有3个Apache的配置文件:

httpd.conf

access.conf

srm.conf

Apache启动时先调用httpd.conf,然后调用srm.conf,最后调用access.conf。但现代版本的Apache为避免管理和维护的混乱,已经改为将所有Apache的相关配置命令放在httpd.conf文件中,不再使用srm.conf和access.conf文件。虽然这两个文件仍然存在,但内容中没有任何配置命令,形同虚设。

httpd.conf文件分为以下3部分:

Global Environment

‘Main’ server configuration

Virtual Hosts

下面将讲述这3部分的用法和与安全相关的注意点。

4.5.1.1 Global Environment

ServerType standalone

用来指定Apache的启动方式:standalone和inetd。standalone模式是Apache 独立运行,也是默认的启动方式。inetd模式是守护进程监听http的连接请求才启动httpd进程,请求完毕后就结束httpd进程,这样服务器负担很重。

ServerRoot “/etc/httpd”

Apache的目录,此处是存放配置、出错记录、日志文件的根目录。目录后面不要加“/”字符。

LockFile /var/lock/httpd.lock

保留默认值,不要更改。

PidFile /var/run/httpd.pid

指定记录Apache的父进程id的文件名及路径。

ScoreBoard /var/run/httpd.scoreboard

指定用于储存服务器进程处理信息的文件名和路径。

#ResourceConfig conf/srm.conf

#AccessConfig conf/access.conf

在标准的配置中,服务器启动时会处理这两个文件。因为现在的Apache只使用httpd.conf文件,摒弃了srm.conf和access.conf文件,所以这两行用“#”注释掉。

Timeout 300

设置超时时间。如果远程客户端超过300秒还没连上Apache Server,或者Apache Server超过300秒没有传送字节给客户端,就立即断开连接。

KeepAlive On

KeepAlive允许客户端的每个连接有多个请求,设为Off时此项无效。

MaxKeepAliveRequests 100

设置每次连接期间所允许的最大请求数目。设为0时表示允许无限制数目。设置数字越大,则服务器性能越高。

KeepAliveTimeout 15

设置等待同一个客户端的同一个连接发出下一个连接请求超过一定的时间就断线。

MinSpareServers 5

MaxSpareServers 20

设置最小的闲置服务处理程序的数目和最大的闲置服务处理程序的数目。如果实际数目少于MinSpareServers,则将增加处理程序;反之,如果实际数目超过MaxSpareServers,一些多余的处理程序将被杀掉。

StartServers 8

设置启动并初始化后启动服务进程的数目。

MaxClient 150

设置服务运行的总数量。一旦达到此数目,新来的客户端就被拒绝,所以该限制数目不能设得太小。

MaxRequestsPerChild 100

设置每个子程序处理结果前的要求数目,设为0表示不限制。

#Listen 3000

#Listen 12.34.56.78:80

Listen 80

设置Apache监听的连接端口或IP地址及端口,默认是80。

#BindAddress *

该选项用来支持虚拟主机,并告知服务器监听哪个IP地址。可以使用“*”,或具体的IP地址和完整的域名。

#LoadModule foo_module libexec/mod_foo.so

DSO(Dynamic Shared Object)支持。DSO模块的概念和作用与Windows的DLL 文件极其相似。

#ExtendedStatus On

当“server-status”管理程序被执行时,检查Apache的运行状态信息。默认是Off。

4.5.1.2 ‘Main’ Server Configuration

如果在第一部分“Global Environment”中的ServerType命令设为inetd的话,那么这部分就没有任何效果,直接跳到ServerAdmin命令。

Port 80

设置Standalone服务器监听的连接端口,也可以设为其他端口,必须小于1 023。必须以root身份才能更改端口。

User apache

Group apache

指定运行httpd的用户和用户组。必须首先以root身份指派。

ServerAdmin root@localhost

设置管理员的电子邮件地址,当Apache有问题时会自动发E-mail通知管理员。

#ServerName localhost

设置主机名称,可以用域名和IP地址。

DocumentRoot “/var/www/html”

设置Apache放置网页的目录路径。

Options FollowSymLinks

AllowOverride None

设置Apache能够访问的每一个目录被访问时所执行的动作。本章后面将详细叙述Apache的目录存取方法。

Options Indexes Include FollowSymLinks

AllowOverride None

Order allow, deny

Allow from all

此处设置Apache的网页目录的执行动作。本章节后面将详细叙述目录的存取方法。

AllowOverride None

Options None

Allow from all

此处可以防止用户创建自己的.htaccess文件。在这个文件中可以改变全局参数,以致会影响到整个系统的安全。可以在httpd.conf文件中加入的命令中都加上上面的代码。

UserDir public_html

设置用户在自己的目录下建立public_html放置网页,即/home/*/public_html/。这样在浏览器地址栏输入“http://Apache服务器/用户名/”就能显示网页。设置的目录必须告知用户,否则他们不知道网页放在什么地方。

DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi

设置Apache的默认首页文档。

AccessFileName .htacess

指定控制存取的文件名称。Apache默认的是.htaccess。本章将在后面详细叙述该文件的用法。

Order allow,deny

Deny from all

防止用户端看到ht开头的文件内容。因为.htaccess记载了相关信息,.htpasswd 记载了密码信息,不允许其他人访问这些文件。

#CacheNegotiatedDocs

指定Proxy服务器是否将交互产生的文件存在Cache中。将该命令注释掉则是不指定。

UseCanonicalName On

设置是否使用标准的名称,默认是On。

TypeConfig /etc/mime.types

指定存放MIME文件类型的文件。

Default Type text/plain

如果Apache不能识别此文件类型时,则按照预设的格式显示,一般以文本文件显示。

MIMEMagicFile conf/magic

mod_mime_magic模块可以让Apache由文件内容决定其MIME类型。如果存在该模块,才会处理MIMEMagicFile这一段。上面3行是当没有该模块时就处理这一段。

HostnameLookups off

设置Apache是否向名称服务器解析该IP地址,记录此链接的名称(如https://www.doczj.com/doc/377828130.html,)。因为DNS解析要花一定时间,所以默认设为off,仅记录IP。

ErrorLog /var/log/httpd/error_log

指定Apache发生错误时记录文件的位置。如果在中没有指定记录文件,则用/var/log/httpd/error_log,否则使用指定的文件。

LogLevel warn

指定记录的详细等级,有8个等级:debug、info、notice、warn、error、crit、alert和emerg。按从详细到简略排列。

LogFormat

“%h %l %u %t\”%r”\”%>s%b\”{Referer}I”\”%{UserAgent}I\”"combind

L ogformat”%h%l%u%t\”%r”\”%>s%b”common

Logformat “%{Referer}I->%U”referer

LogFormat”%{User-agent}I”agint

定义4种格式的别名:combind、commen、referer和agint。

#CustomLog /var/log/httpd/access_log common

CustomLog /var/log.httpd/access_log combind

指定记录文件使用哪种自定义的格式。其他不使用的自定义格式将被注释掉。

以上是关于日志文件的,将在后面的Apache日志文件中详细叙述。

ServerSignature On

设为On,当Apache产生错误时,就在网页上显示Apache的版本信息、主机名称、端口等一行信息。设为Off,就不显示相关的信息。设为E-mail时,就有“mailto:”给管理员的超链接。

Alias/icons /”var/www/icons/”

使用较短的别名,其格式为:Alias 别名原名。可以无限制地建立别名。注意别名的后面如果有“/”,那么在使用URL时也得有“/”。

ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”

和Alias类似,设置服务器脚本目录。

应该强制性地使用ScriptAlias命令来限定CGI程序位于某个或者某几个特定的位置。一般可以设置多个ScriptAlias。必须保证cgi-bin目录不在html目录下,这一点非常重要,这样可以防止黑客通过浏览它们而查看CGI程序。

IndexOptions FancyIndexing

以特定的图形显示文件清单。

AddIconByEncoding (CMP, /icons/compressed.gif) x-compress x-gzip

……

DefaultIcon /icons/unknown.gif

指定显示文件清单时各种文件类型的对应图形。

4.5.1.3 Virtual Hosts

这部分是设置虚拟主机的。所谓虚拟主机,就是指一台服务器作为多域名的Web 服务器。ISP经常通过一台服务器为其客户提供Web服务。而客户通常希望主页以自己的名字出现,而不是在该ISP的名字后面,因为使用单独的域名和根网址可以看起来更正式一些。传统上,用户必须自己设立一台服务器才能达到拥有单独域名的目的,然而这需要维护一个单独的服务器。很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机的能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。虚拟主机就是解决这种问题的方案,使客户的域名实际指向ISP的同一台服务器。1.Apache支持虚拟主机的方式

Apache有两种支持虚拟主机的方式。一是为每一个虚拟主机设置单独的httpd 进程,二是为所有的主机设置一个单独的httpd进程。

为每一个虚拟机设置单独的httpd进程

在httpd.conf文件的第一部分Global Environment中的BindAddress命令或Listen命令就是用来指定虚拟主机的地址和端口的。

BindAddress命令用来指定单一的地址,可以使用域名或IP地址。该命令在httpd.conf文件中只能出现一次。

Listen命令可以让httpd进程监听多个地址或端口。反复使用Listen命令就能实现这个要求。

为所有的主机设置一个单独的httpd进程

这是一个常用的方法。用户只要维护一个httpd.conf文件。在此文件的第三部分Virtual Host中,用命令来为所有的虚拟主机进行配置。有多个虚拟主机就有多个段。在不同的虚拟主机的段中可以指定不同的ServerAdmin、 ServerName、DocumentRoot、ErrorLog和TransferLog。

2.虚拟主机的实现方式

虚拟主机有三种实现方式:以主机名称的方式虚拟、以IP的方式虚拟、以端口的方式虚拟。下面就举一个在httpd.conf的第三部分Virtual Host中实现上面提及的方式的例子。

以主机名称的方式虚拟

如果用户的一台服务器有多个域名,Virtual Host文件举例如下:

NameVirtualHost 210.12.195.6

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/hacker

ServerName https://www.doczj.com/doc/377828130.html,

ServerAdmin admin@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/pcfrient

Servername https://www.doczj.com/doc/377828130.html,

以IP的方式虚拟

注册域名是要花一笔费用的。解决方案是可以用IP的方式来虚拟。在Linux中可以为一个网卡捆绑两个IP地址。如服务器的地址是 210.12.195.6,现在有一个IP地址210.12.195.9没有使用。将210.12.195.9捆绑到服务器的网卡中,执行下列命令:

#ifconfig eth0:0 210.12.195.9

这样,服务器就有两个IP地址了。以IP的方式虚拟和以主机名称的方式虚拟类似,请看下面的例子:

NameVirtualHost 210.12.195.6

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/hacker

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/pcfrient

以IP的方式虚拟不用NameVirtualHost命令。

以主机名称和IP的方式虚拟

就是上面的两个方式的结合。看下面的例子:

NameVirtualHost 210.12.195.6

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/hacker

ServerName https://www.doczj.com/doc/377828130.html,

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/pcfrient

以端口的方式虚拟

http默认的端口是80,如果用户要开设另一个端口443作为另一个虚拟主机,举例如下:

Listen 80

Listen 443

ServerAdmin bright@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/hacker

ServerAdmin suying@https://www.doczj.com/doc/377828130.html,

DocumentRoot /var/www/html/pcfrient

以不同的IP和端口的方式虚拟

该方式是以IP的方式虚拟和以端口的方式虚拟的结合。假设服务器捆绑了两个IP地址,210.12.192.6和210.12.195.9,后面的IP地址用端口443。举例如下:

Listen 210.12.192.6:80

Listen 210.12.195.9:443

ServerAdmin bright@https://www.doczj.com/doc/377828130.html, DocumentRoot /var/www/html/hacker

ServerAdmin suying@https://www.doczj.com/doc/377828130.html, DocumentRoot /var/www/html/pcfrient

监视并记录Apache网站服务器的运行

监视并记录Apache网站服务器的运行 LogFormat 指令承诺你告诉Apache你想要记录要求的哪些方面。而你仍需附加的指令来告诉Apache在哪里记录那些信息,这在下一章中将会介绍。下面的例子显示了两种最受欢迎的格式的配置:一般日志格式和整合日志格式。当Apache收到一个要求,他将会用相应的要求属性来替代以%为前缀的每一个域。假如您正在使用一般日志格式,您的日志文件里 尽管有附件提供日志格式的详尽索引,下表描述了一些最为重要的域: # %h: 客户端(例如,扫瞄器)向服务器发出连接要求时自己的当时的IP地址或域名(需开启HostNameLookups)。 # %u: 使用方式认证用户时,记录下的用户的编号。 # %t: 服务器同意到连接要求的时刻。 # %r: 客户端发出的原始连接要求中的文本信息,包含所使用的方法。 # %>s: 服务器应答扫瞄器后的返回状态代码,200表示要求成功。. # %b: 服务器应答扫瞄器发出的单个要求的回传对象的内容大小(字节为单位),不统计数据包头部字节。 整合日志格式在一般日志格式的基础上扩展出了两个附加的域。定义为: # %{Referer}i: 连接要求数据包包头,包含指向当前页面的文档关联信息。 # %{User-agent}i: 用户代理连接要求数据包包头,包含客户扫瞄器的信息。 创建一个自定义日志文件 您可能会想创建Apache自带以外的新的日志文件。下面的例子将运用CustomLog来创建一个新的日志文件,并储存由一个之前定义好的日志格式,即前一章提到的common,所定义的信息。您还能够用格式本身的定义来替换昵称。一个附加的,更为简单的指令是Transferlog,它只同意最后一个LogFormat指令提供的定义。

Linux下Apache服务器的安装和配置

【实验8】Apache服务器的安装和配置 一、实验目的: 1.掌握Apache Web服务器的安装和配置。 2.使用虚拟主机在同一台服务器上架设多个网站。 二、【实验环境】 1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文 件。 2.2台以上机器组成的局域网。 三、【实验原理】 (一)Apache服务简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web 服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 (二)虚拟主机 所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成 多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务 器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自 独立的,并由用户自行管理。 虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机 技术主要应用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分 为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬体资源。如果 划分是系统级别的,则称为虚拟服务器。

(三)Linux中虚拟主机的分类 1、基于IP地址的虚拟主机 如果某公司有多个独立的IP地址可用,那么可以用不同的IP地址来配置虚拟主机。 2、基于端口的虚拟主机 如果只有一个IP地址,但是要架设多个站点,可以使用端口来区分,每个端口对应一个站点。这样配置的话,用户在访问的时候必须在 URL中指明端口号才能访问相应的网站。 3、基于名称的虚拟主机 使用基于IP地址或者端口的虚拟主机,能够配置的站点数目有限,而使用基于名称的虚拟主机,可以配置任意数目的虚拟主机,而不需要 额外的IP地址,也不需要修改端口号。 四、实验步骤 本实验请勿使用【系统】→【管理】→【服务器设置】中的【HTTPD】工具来配置,否则后果自负! (一)Apache服务器的启动 1、测试是否已安装Apache服务器: [root@localhost ~]#rpm –qa httpd 2、启动Apache服务器: [root@localhost ~]#service httpd start (二)基于端口的虚拟主机的配置 1、在/etc/httpd目录中,建立一个名为vhostconf.d的子目录,用来存放虚拟 主机的配置文件。 2、在/var/www目录中,建立一个名为websites的子目录,用于存放网站源 文件;在website目录下再建立ipvhost1和ipvhost2文件夹,用于区分各 个站点。

搭建Apache服务器

实训时间:2010年6月28日上午 搭建Apache服务器 实验目的 1.掌握配置用户个人站点的方法; 2.掌握配置目录访问控制与用户认证的方法; 3.掌握基于IP地址不同端口的虚拟主机的架设方法; 4.掌握基于不同IP地址的虚拟主机的架设方法; 实验内容 根据Apache服务器的默认设置,Web站点的相关文件保存在/var/www目录,而Web站点的日志文件保存于/var/log/httpd目录。安装安装Apache服务并进行相应的设置。 实验准备 两台计算机,一台安装RHEL Server5,另一台安装Windows XP。 一、建立Apache服务器的应用环境 1.安装Apache服务器软件包 (1)以超级用户登录到字符界面,输入“rpm -qa|grep httpd”命令,查看是否已安装Apache软件包,如没安装,则进行下一步。 (2)利用mount命令挂载安装光盘,依次输入如下命令: mount -t iso9660 /dev/cdrom /mnt rpm –ivh /mnt/Server/apr-1.2.7-11.i386.rpm rpm –ivh /mnt/Server/apr-util-1.2.7-6.i386.rpm rpm –ivh /mnt/Server/httpd-2.2.3-6.el5.i386.rpm 2.设置RHEL Server5计算机,其IP地址为192.168.0.10,子网掩码为255.255.255.0;允 许www服务通过防火墙,关闭SELinux,并启动Apache服务器。 (1)超级用户在字符界面输入“setup”命令,启动文字模式的系统设置程序。使用方向键将光标移至“Network configuration”(网络配置)选项,按回车,显示网卡信息。(2)选中网卡,再次按回车,出现网卡配置界面,按Tab键将光标移至“Use DHCP” 后的“*”,按[Space]键取消选择,然后在“Static IP”后输入IP地址“192.168.0.10”,在“Netmask”后输入掩码“255.255.255.0”。然后按Tab键将光标移至“OK”按钮按回车键,保存网卡设置。 (3)回到网卡设备选择界面,移动光标至“Quit”按回车。回到工具选择界面,选择“Firewall configration”(防火墙配置)选项按回车,出现防火墙配置界面,移动光标至“Disabled”,并按【Space】键选择此项。 (4)移动光标至“Customize”按钮按回车,出现防火墙自定义配置界面,选中“www” 选项。最后关闭此程序。 (5)为让系统设置起效,重启计算机。 3.测试Apache服务器。 在Windows计算机中启动IE浏览器,在地址栏中输入RHEL Server5主机的IP地址,将显示/var/www/html目录下index.html文件的内容。 二、配置个人Web站点。 1.配置Apach服务器,允许Linux用户架设其个人Web站点。 超级用户首先备份配置文件httpd.conf,输入命令“cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.back”,以保证即使Apache服务器的配置错误也可以恢复初始设置。(1)输入“vi /etc/httpd/conf/httpd.conf”。 (2)在vi 命令模式下输入“/mod_userdir.c”按回车,查找文件中的“mod_userdir.c”字符

Apache服务器的安装与配置

Apache服务器的安装与配置 一、安装Apache 双击可执行文件apache_1.3.33-win32-x86-no_src.exe,将Apache服务器软件安装至C:\Apache目录下。 二、设置C:\apache\conf\httpd.donf文件 修改Apache的核心配置文件c:\apache\conf\httpd.conf(说明一点:“#”为Apache的注释符号)。修改方法如下: 1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它。 2、寻找到ServerAdmin。这里输入你的E-Mail地址。 (以上两条在安装时应该已经配置好了,所以不必改动,这里介绍一下,主要是为了日后的修改) 3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!A 大写,两个l小写。下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。 AllowOverride All Options All Order allow,deny Allow from all 4、寻找到DocumentRoot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。此外注意,路径的分隔符在Apache Server里写成“/”。(将DocumentRoot "C:/apache/htdocs"改为DocumentRoot "C:/try") 5、寻找到DirectoryIndex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl。注意,每种类型之间都要留一空格!这里添加好了,以后就不用再麻烦了。 6、port(端口号),如果没安装IIS的话,就保持80不要变,否则,就要改一下(因为IIS的WEB服务占据了80),可以改成81等等。 三、Apache的手动启动和停止 Net start apache启动apache服务,Net stop apache停止apache服务。

apache服务器启动失败的解决方法

安装apache之后,桌面右下角出现apache是红色的,这意味着apache没有启动,鼠 标移至任务栏Apache 服务图标显示“No services installed”,解决方法: 1.找到你的apache服务器的安装目录(我的安装目录在E盘) 2.点击电脑左下角“开始”→“运行”→输入“cmd”→默认是C:\Documents and Settings\Administrator> 3.现在我们将默认C:\Documents and Settings\Administrator>改为我们的Apache安装目录,命令如下:C:\Documents and Settings\Administrator>E:按回车键,然后键入安装目录中的bin地址: E:\>cd E:\Apache2.2\bin 按回车键,然后键入命令添加apache服务器: E:\>cd E:\Apache2.2\bin>httpd.exe -k install -n apache2 好了,现在我们已经添加apache这个服务了,接下来是启动服务(net start apache2):E:\>cd E:\Apache2.2\bin>net start apache2 然后按回车键,apache服务器就启动了。 卸载apache的命令是:E:\>cd E:\Apache2.2\bin>httpd -k uninstall(卸载apache) 最后测试apache是否安装成功,在IE地址栏输入:http://localhost:8080/(我的端口是8080)如果端口号是80则不用加端口号,直接在地址栏输入http://localhost/ 如果页面中出现“It Works”,则意味着你的apache安装成功了。

Apache服务器配置技巧

1、如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒。 设置这个TimeOut适用于三种情况: 2、如何接收一个get请求的总时间 接收一个post和put请求的TCP包之间的时间 TCP包传输中的响应(ack)时间间隔 3、如何使得apache监听在特定的端口 修改httpd.conf里面关于Listen的选项,例如: Listen 8000 是使apache监听在8000端口 而如果要同时指定监听端口和监听地址,可以使用: Listen 192.170.2.1:80 Listen 192.170.2.5:8000 这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。 当然也可以在httpd.conf里面设置: Port 80 这样来实现类似的效果。 4、如何设置apache的最大空闲进程数 修改httpd.conf,在里面设置: MaxSpareServers n 其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。 同时也可以设置: MinSpareServers n 来限制最少空闲进程数目来加快反应速度。 5、apache如何设置启动时的子服务进程个数 在httpd.conf里面设置: StartServers 5 这样启动apache后就有5个空闲子进程等待接受请求。 也可以参考MinSpareServers和MaxSpareServers设置。 6、如何在apache中设置每个连接的最大请求数 在httpd.conf里面设置: MaxKeepAliveRequests 100 这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。 7、如何在apache中设置session的持续时间 在apache1.2以上的版本中,可以在httpd.conf里面设置: KeepAlive on KeepAliveTimeout 15 这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp

apache简介

apache简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache 的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache 有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如https://www.doczj.com/doc/377828130.html,、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。 Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。 Apache web服务器软件拥有以下特性: 支持最新的HTTP/1.1通信协议 拥有简单而强有力的基于文件的配置过程 支持通用网关接口 支持基于IP和基于域名的虚拟主机 支持多种方式的HTTP认证 集成Perl处理模块 集成代理服务器模块 支持实时监视服务器状态和定制服务器日志 支持服务器端包含指令(SSI) 支持安全Socket层(SSL) 提供用户会话过程的跟踪 支持FastCGI 通过第三方模块可以支持Java Servlets 如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。 Apache有名的几个项目介绍 HTTP Server 这个在前面的段落介绍过了,Apache已经是他的代号了 ActiveMQ 免费开源由java编写符合JMS1.1标准的消息中间件。 另外,它也支持通过除java语言外的语言的使用 Ant

三大WEB服务器对比(apache_,lighttpd,nginx)

三大WEB服务器对比分析(apache ,lighttpd,nginx)一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: ·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮, ·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) ·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2.apache apache是世界排名第一的web服务器, 根据netcraft(https://www.doczj.com/doc/377828130.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中. apache 的特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的http/1.1协议 3) 简单而且强有力的基于文件的配置(httpd.conf). 4) 支持通用网关接口(cgi) 5) 支持虚拟主机.

2-apache Apache_Web 服务器安装部署手册档

重要提示 Web服务器包括apache的安装部署和W AS7 Plugin安装部署两部分,如果的websphere应用服务器使用非集群模式,plugin则不需要安装,只需配置本文2.1章节内容,如果websphere 应用服务器使用群集模式,则需要按照本文2.2章节进行plugin安装配置。 1 Apache安装 Apache的安装和配置现在可以采用脚本自动化安装,脚本就是139ftp上的 apache_install_script.sh 请下载到web服务器中,并执行即可。 注意:在执行脚本安装前请确认web服务器的/opt/apache下没有安装过apache,并且web 服务器能上外网(能ping通https://www.doczj.com/doc/377828130.html,) 成功安装apache并测试通过后即可直接继续本文第二章节Was7 Plugin安装 在root下进行root进入方法#su 然后输入密码 1.1 准备安装 关闭系统自带的web服务: #chkconfig httpd off 在线安装gcc #yum install gcc cc 下载并解压安装程序: #cd ~/ #wget https://www.doczj.com/doc/377828130.html,/httpd/httpd-2.2.15.tar.gz #tar –zxvf httpd-2.2.15.tar.gz -C /usr/src Web 服务器安装部署手册 Page 4 of 21 1.2 安装Apache Web Server 进入源码目录: #cd /usr/src/httpd-2.2.15 编译源文件: #./configure //(安装到默认目录) 形成安装文件: #make 安装程序: #make install 1.3 验证安装 进入安装后目录: # cd /opt/apache/apache-2.2.15/bin 检查进程模式: #./apachectl –l Compiled in modules: core.c worker.c http_core.c mod_so.c 启动Apache Web Server:

Apache服务器配置毕业设计

A p a c h e服务器配置毕 业设计 目录 摘要 ................................................................................................................ 错误!未定义书签。 1 综述 (1) 1.1 架设WWW网站的意义 (1) 1.2 WWW的工作原理 (1) 1.3 在Linux下构建WWW服务器 (2) 1.3.1 关于硬件配置 (2) 1.3.2 将linux用作www服务器 (2) 2 Red Hat Linux的安装与使用 (4) 2.1 Red Hat Linux9.0简介 (4) 2.1.1 Red Hat Linux的网络功能 (6) 2.1.2 Red Hat Linux的文件类型 (9) 2.2 Red Hat Linux9.0的安装和配置 (11) 2.2.1 合理划分分区 (11) 2.2.2 了解相关信息 (12) 2.2.3 图形化安装过程 (13) 3 WWW服务器的建立 (27) 3.1 Apache的体系结构及性能 (27) 3.1.1 Apache的体系结构 (27) 3.1.2 Apache性能简介 (28) 3.2 配置并启动Apache (31) 3.2.1 配置文件httpd.conf (31) 3.2.2 Apache服务的安装、启动与停止 (32) 3.3 设置用户个人主页 (33) 3.3.1设置Linux系统用户个人主页的目录 (33) 3.3.2设置用户个人主页所在目录的访问权限 (33) 3.4 设置虚拟主机 (34) 3.4.1 配置DNS (34) 4 建立和完善WWW站点 (42) 4.1建立安全传输的WWW站点 (42) 4.1.1认识SSL安全协议 (42) 4.1.2 维护站点安全性应注意的问题 (42) 5 结论 (44) 致谢 ................................................................................................................ 错误!未定义书签。参考文献.. (45) 8

apache服务配置

Apache 安装后启动然后配置即可.记得开启80 端口. iptables –I INPUT –p tcp –dport 80 –j ACCEPT 开启tcp 80 端口 apache 的配置文件: httpd.conf 路径: /etc/httpd/conf/httpd.conf DocumentRoot “/var/www/html”设置主目录的路径 DirectoryIndex index.html index.html.var 设置默认主文档,中间用空格格开 Listen 80 Listen 192.168.1.1:80 设置apache监听的IP地址和端口号,可添加多个 ServerRoot “/etc/httpd”设置相对根目录的路径(存放配置文件和日志文件) ErrorLog Logs/error_log 设置错误日志存放路径 CustomLog Logs/access_log combined (日志格式) 设置访问日志存放路径 如果日志文件存放路径不是以”/”开头,则意味着该路径相对于ServerRoot 的相对路径. ServerAdmin 邮箱地址{设置管理员的E-mail地址 ServerName FQDN名或IP地址{设置服务器主机名 由于Apache默认字符集为西欧(UTF-8),所以客户端访问中文网页时会出现乱码. 将语句“AddDefaultCharset UTF-8”改为“AddDefaultCharset GB2312”方可解决,不过要重新启动Apache服务. 修改完默认字符集后,客户端如需访问,要先清空浏览器的缓存.

创建虚拟目录,添加Alias语句即可 Alias /ftp “/var/ftp”Alias 虚拟目录名物理路径 Options Indexes 定义目录特性 AllowOverride None 一般这样写就行 Order allow,deny 设置访问权限 Allow from all 允许所有用户访问 要实现虚拟目录用户认证,首先要建立保存用户名和口令的文件 htpasswd -c /etc/httpd/mysecretpwd (文件名) text (用户) -c 选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容.所以在添加第二个用户到口令文件时,就不需要使用-c 选项了. Alias /ftp “/var/ftp” AuthType Basic 设定认证类型,Basic最常用AuthName “This is a private directory. Please Login:”辛苦点,全背上吧. AuthUserFile /etc/httpd/mysecretpwd 定义口令文件路径Require user text(用户) 定义允许哪些用户可以访问

Apache服务器使用及配置

web服务器的发送和接受 可以通过httpwatch来了解 https://www.doczj.com/doc/377828130.html, cmd中的操作 1.apache其实就输一个软件,apache安装目录下的bin\httpd.exe 先进入到apache\bin目录 httpd -k start[shutdown][restart] 2.如果你希望在任何一个目录下都可以运行我们的httpd.exe则需要做一个环境变量的设置 重新进入控制台cmd 关于端口: apache默认在80端口监听 一台机器可以有:1-65535号端口(2个字节(256*256)) 查看系统正在监听的端口:netstat -an或netstat -nab(发现是哪个程序在监听) 一台机器的一个端口只能被一个程序监听,一个程序可以监听多个端口 端口分为有名端口1-1024,一般别去用 apache修改配置端口 配置文档位置:apache2.2/conf/http.conf 1.添加Listen 8080 2.重新启动apache apache的目录 /bin 该目录用于存放apache常用的命令,如httpd /cgi-bin 该目录用于存放linux/unix下常用的命令 /conf 该目录用于存放配置文件,如httpd.conf /error 该目录用于存放apache启动关闭的错误 /htdocs 该目录用于存放我们的默认站点的文件夹 /icons 该目录用于存放图标 /logs 该目录用于存放apache的相关日志,如error.log,install.log /manual 该目录用于存放apache的手册 /modules 该目录用于存放apache的模块.so的文件 apache是基于模块化设计的,核心代码并不多,大多数的功能都被分散到各个模块中运行机制: MPM:multi processing modules:多重处理模块 APR:Apache Portable Runtime:可移植运行库 生命周期: 启动,配置=》模块初始化=》子进程初始化=》请求循环=》子进程结束 启动阶段===============================》运行阶段============= Apache配置虚拟目录(默认是htdocs) 1.配置虚拟目录在apache的conf目录下的httpd.conf的节点后面添加如下代码: DirectoryIndex index.php index.html index.htm Alias /myblog "D:/myblog"

apache服务器安全问题

Apache服务器安全问题 Apache服务器面临的安全问题 (2) HTTP拒绝服务 (2) 缓冲区溢出 (3) 如何配置一个安全的Apache服务器 (3) 勤打补丁 (3) 建立一个安全的目录结构 (5) 为Apache使用专门的用户和用户组 (5) Web目录的访问策略 (6) 禁止使用目录索引 (6) 禁止默认访问 (6) 禁止用户重载 (6) 配置Apache服务器访问日志 (7) 相关配置文件说明 (7) Web服务器日志轮循 (8) Apache服务器的密码保护 (9) 减少CGI和SSI风险 (11) 使用SSL加固Apache (12) Apache服务器防范DoS攻击 (13)

Apache服务器面临的安全问题 HTTP拒绝服务 攻击者通过某种手段使服务器拒绝对HTTP应答。这使得Apache服务器对系统资源(cpu与内存)需求剧增,最终导致造成系统变慢甚至瘫痪。Apache服务器最大的缺点是他的普及性成为了众矢之的。Apache服务器所面临的拒绝服务攻击主要包括以下几种形式。 数据包洪水工具 1.一种中断服务器或者本地网络的方法是数据包洪水攻击,它通常使用 Internet控制报文协议(ICMP)包或者UDP包。在最简单的情况下,这些攻击都是使服务器或者网络的负载过重,这意味着黑客的网络攻击速度必须比目标的网络速度更快。使用UDP包的优势是不会有任何包返回到黑客的主机。而使用ICMP的优势是使得黑客的攻击更加富有变化。发送有缺陷的包会搞乱并锁住受害者的网络。目前所流行的趋势是黑客欺骗目标服务器,让其相信正在受到来自自身的洪水攻击。 2.磁盘攻击 这是一种更麻烦的攻击,它不仅仅影响目标计算机的通信,还破坏他的硬件。 伪造的用户请求利用写命令攻击目标服务器的硬盘,让其超过极限,并强制关闭。 受攻击者会因为信息暂时不可达,甚至丢失而产生损失。 3.路由不可达 通常,拒绝服务攻击集中在路由器上,攻击者首先获得控制权并操纵目标主机。 当攻击者能够更改路由器的路由表时,会造成整个网络不可达。这种攻击非常阴险,因为它刚开始出现时会让人莫名其妙。因为随后你的服务器就会失效,而整个网络又会不可达,这样你会要调查很多地方。 4.分布式拒绝攻击 这是对Apache服务器最有威胁的工具,即DDoS。当很多堡垒主机被感染时,一起向你的服务器发起拒绝服务攻击,是招架不住的。其中,繁衍式攻击是最恶劣的,因为攻击程序不会通过人为干涉而蔓延。Apache服务器特别容易受到攻击,无论是对分布式攻击还是隐藏来源的工具。原因是Apache服务器无处不在,对于Apache 服务器所制定的病毒,特别是ssl蠕虫潜伏在很多主机上,黑客可以通过操纵蠕虫,

apache服务状态码大全

为消息类,该类状态代码用于表示服务器临时回应: 100 Continue 表示初始的请求已被服务器接受,浏览器应当继续发送请求的其余部分(HTTP 1.1) 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1) 2xx 表示浏览器端请求被处理成功: 200 OK 一切正常。 201 Created 服务器已创建了文件,Location 头给出了他的URL。 202 Accepted 已接受请求,但处理尚未完成。 203 Non-Authoritative Information 文件已正常地返回,但一些应答头可能不正确,因为使用的是文件的拷贝(HTTP1.1) 204 No Content 没有新文件,浏览器应该继续显示原来的文件。这个跟下面的304 非常相似。 205 Reset Content 没有新的内容,但浏览器应该重置他所显示的内容.用来强制浏览器清除表单输入内容(HTTP 1.1) 206 Partial Content 客户发送了一个带有Range 头的GET请求,服务器完成了他(HTTP 1.1新)。注意,通过Range 能实现断点续传。 3xx 重定向: 300 Multiple Choices 客户请求的文件能在多个位置找到,这些位置已在返回的文件内列出。如果服务器要提出优先选择,则应该在Location应答头指明。 301 Moved Permanently 客户请求的文件在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。 302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此他是个非常有用的状态代码。注意这个状态代码有时候能和301替换使用。例如,如果浏览器错误地请求http://host/~user (缺少了后面的斜杠),有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。 303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文件应该通过GET提取(HTTP 1.1新). 304 Not Modified 客户端有缓冲的文件并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文件)。服务器告诉客户,原来缓冲的文件还能继续使用。 305 Use Proxy 客户请求的文件应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使他实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器能跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1新)

web服务器apache架构与原理

web服务器apache架构与原理 web服务器 在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。 Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、chrome等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。 web服务器端的工作流程: (1)客户端发送请求 客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。 (2)服务器解析请求 Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。 Web服务器软件现在就知道了,它应该找到文件/sample.html,并使用HTTP/1.1协议将内存返回给客户。信息是经过与请求到来相同的连接发出的,所以服务器不需要定们客户或创建新的连接。 (3)读取其它信息(非必须步骤)

Apache服务器配置及安全应用指南

Apache服务器配置及安全应用指南 技术创新变革未来

Apache服务安全加固 一.账号设置 以专门的用户帐号和组运行Apache。 根据需要为Apache 创建用户、组 参考配置操作如果没有设置用户和组,则新建用户,并在Apache 配置文件中指定 (1) 创建apache 组:groupadd apache (2) 创建apache 用户并加入apache 组:useradd apache –g apache (3) 将下面两行加入Apache 配置文件httpd.conf中 检查httpd.conf配置文件。检查是否使用非专用账户(如root)运行apache 默认一般符合要求,Linux下默认apache或者nobody用户,Unix默认为daemon用户

Apache服务安全加固 授权设置 严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容 Apache 的主目录对应于Apache Server配置文件httpd.conf的Server Root控制项中应为: 判定条件 非超级用户不能修改该目录中的内容 检测操作 尝试修改,看是否能修改 一般为/etc/httpd目录,默认情况下属主为root:root,其它用户不能修改文件,默认一般符合要求 严格设置配置文件和日志文件的权限,防止未授权访问。 chmod600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限。 使用命令”chmod644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限。 /etc/httpd/conf/httpd.conf默认权限是644,可根据需要修改权限为600。 /var/log/httpd/*.log默认权限为644,默认一般符合要求。

三大WEB服务器对比分析 apache lighttpd nginx

一.软件介绍(apache lighttpdnginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: ·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ·从安全性上看, fastcgi和宿主的server完全独立,fastcgi怎么down也不会把server搞垮, ·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) ·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2.apache apache是世界排名第一的web服务器, 根据netcraft(https://www.doczj.com/doc/377828130.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group 时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中. apache 的特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的http/1.1协议 3) 简单而且强有力的基于文件的配置(httpd.conf). 4) 支持通用网关接口(cgi) 5) 支持虚拟主机. 6) 支持http认证. 7) 集成perl. 8) 集成的代理服务器 9) 可以通过web浏览器监视服务器的状态, 可以自定义日志. 10) 支持服务器端包含命令(ssi). 11) 支持安全socket层(ssl).

相关主题
相关文档 最新文档