Apache配置详解(一)

  • 时间:
  • 浏览:1

更改httpd启动法律法律方法

  2.加上httpd到启动项:

     在后边这段目录属性配置中,主要有下面的选项:

     Options:配置在特定目录使用哪些行态,常用的值和基本含义如下:

     ExecCGI: 在该目录下允许执行CGI脚本。

     FollowSymLinks: 在该目录下允许文件系统使用符号连接。

     Indexes: 当用户访问该目录时,因为用户找还不能 DirectoryIndex指定的主页文件(类式 index.html),则返回该目录下的文件列表给用户。

     该 模式是由系统进程运行来监听客户的连接。当有新客户连接时,由其中的有三个白多多空闲系统进程运行接受连接。服务器在启动时启动有三个白多多系统进程运行运行,每个系统进程运行运行产生的系统进程运行数是固定的 (ThreadsPerChild决定),而且启动时有80个系统进程运行。当80个系统进程运行存在问题用时,服务器自动fork有三个白多多系统进程运行运行,再产生25个系统进程运行。      perchild因为httpd -l列出perchild.c,则前要对下面的段进行配置: 

Listen 80 

Listen 8080 NameVirtualHost 172.20.80.40:80 

NameVirtualHost 172.20.80.40:8080 <VirtualHost 172.20.80.40:80> 

ServerName www.example1.com 

DocumentRoot /www/domain-80 

</VirtualHost> <VirtualHost 172.20.80.40:8080> 

ServerName www.example1.com 

DocumentRoot /www/domain-8080 

</VirtualHost> <VirtualHost 172.20.80.40:80> 

ServerName www.example2.org 

DocumentRoot /www/otherdomain-80 

</VirtualHost> <VirtualHost 172.20.80.40:8080> 

ServerName www.example2.org 

DocumentRoot /www/otherdomain-8080 

</VirtualHost> 

     cp -a apachectl /etc/rc.d/init.d/httpd

<Directory "/usr/local/apache2/cgi-bin"> #设置目录属性 

AllowOverride None 

Options None 

Order allow,deny 

Allow from all 

</Directory>

     在 该工作模式下,服务器启动后起动 5 httpd系统进程运行运行 (加父系统进程运行运行共 6个,通过 ps -ef|grep httpd命令还不能 看得人 )。当有用户连接时, apache会使用有三个白多多空闲系统进程运行运行为该连接服务,一块儿父系统进程运行运行会 fork有三个白多多子系统进程运行运行。直到内存中的空闲系统进程运行运行达到 MaxSpareServers。该模式是为了兼容有些旧版本的系统进程运行。我缺省编译时的选项。

 

2.服务器优化

     (1)错误日志的设置 

               ErrorLog logs/error_log #日志的保存位置 

               LogLevel warn #日志的级别 

   显示的格式日下:
 

             [Mon Oct 10 15:54:29 805] [error] [client 192.168.10.22] access to /download/ failed, reason: user admin not allowed access      (2)访问日志设置 

日志的缺省格式有如下几种:

</Directory> 

     ServerTokens Prod #该参数设置http头部返回的apache版本信息,可用的值和含义如下: 

     Prod:仅软件名称,类式 :apache 

     Major:包括主版本号,类式 :apache/2 

     Minor:包括次版本号,类式 :apache/2.0 

     Min:仅apache的完整性版本号,类式 :apache/2.0.54 

     OS:包括操作系统类型,类式 :apache/2.0.54Unix 

     Full:包括apache支持的模块及模块版本号,类式 :Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g 

     ServerSignature Off #在页面产生错误时否有 出现服务器版本信息。推荐设置为Off

5、CGI设置     ScriptAlias /cgi-bin/ "/mnt/software/apache2/cgi-bin/" # 访问时还不能 :http://www.clusting.com/cgi-bin/ 。而且该目录下的CGI脚本文件要加可执行权限! 

<Directory "/mnt/web/clusting"> 

Options FollowSymLinks 

AllowOverride None 

Order allow,deny                 #Order:控制在访问时AllowDeny有三个白多多访问规则哪个优先:

Allow from all                      #Allow:允许访问的主机列表(可用域名或子网,类式 :Allow from 192.168.0.0/16) 

</Directory>                      #Deny:拒绝访问的主机列表。

     (2) 基于IP和多端口的虚拟主机配置 

本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1864366

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 

LogFormat "%h %l %u %t "%r" %>s %b" common #common为日志格式名称 

LogFormat "%{Referer}i -> %U" referer 

LogFormat "%{User-agent}i" agent 

CustomLog logs/access_log common 

4、持久性连接设置

  1.http脚本一键复制到/etc/rc.d/init.d你什儿 目录下:

     ServerRoot "/mnt/software/apache2" #软件安装的位置。其它指定的目录因为没人指定绝对路径,则目录是相对于该目录。

     (5)在不同的端口上运行不同的站点(基于多端口的服务器上配置基于域名的虚拟主机) 

主配置文件:httpd.conf

     (4)在多个IP地址的服务器上配置基于域名的虚拟主机: 

Listen 80 # This is the "main" server running on 172.20.80.40 

ServerName server.domain.com 

DocumentRoot /www/mainserver # This is the other address 

NameVirtualHost 172.20.80.80 <VirtualHost 172.20.80.80> 

DocumentRoot /www/example1 

ServerName www.example1.com 

# Other directives here ... 

</VirtualHost> <VirtualHost 172.20.80.80> 

DocumentRoot /www/example2 

ServerName www.example2.org 

# Other directives here ... 

</VirtualHost> 

Listen 172.20.80.40:80 

Listen 172.20.80.40:8080 

Listen 172.20.80.80:80 

Listen 172.20.80.80:8080 <VirtualHost 172.20.80.40:80> 

DocumentRoot /www/example1-80 

ServerName www.example1.com 

</VirtualHost> <VirtualHost 172.20.80.40:8080> 

DocumentRoot /www/example1-8080 

ServerName www.example1.com 

</VirtualHost> <VirtualHost 172.20.80.80:80> 

DocumentRoot /www/example2-80 

ServerName www.example1.org 

</VirtualHost> <VirtualHost 172.20.80.80:8080> 

DocumentRoot /www/example2-8080 

ServerName www.example2.org 

</VirtualHost> 

     (6)基于域名和基于IP的混合虚拟主机的配置: 

     该模式下,子系统进程运行运行的数量是固定的,系统进程运行数不受限制。当客户端连接到服务器时,又空闲的系统进程运行提供服务。 因为空闲系统进程运行数存在问题,子系统进程运行运行自动产生系统进程运行来为新的连接服务。该模式用于多站点服务器。



3、
HTTP返头回信息配置  

     以下是对主站点的目录进行访问控制: 

<IfModule prefork.c> 

StartServers 5 #启动apache时启动的httpd系统进程运行运行个数。 

MinSpareServers 5 #服务器保持的最小空闲系统进程运行运行数。 

MaxSpareServers 10 #服务器保持的最大空闲系统进程运行运行数。 

MaxClients 80 #最大并发连接数。 

MaxRequestsPerChild 800 #每个子系统进程运行运行被请求服务好多个次后被kill掉。0表示不限制,推荐设置为800。 

</IfModule> 

7、虚拟主机的配置 

     (1)基于IP地址的虚拟主机配置 

# Ensure that Apache listens on port 80 

Listen 80 # Listen for virtual host requests on all IP addresses 

NameVirtualHost *:80 <VirtualHost *:80> 

DocumentRoot /www/example1 

ServerName www.example1.com 

ServerAlias example1.com. *.example1.com 

# Other directives here 

</VirtualHost> <VirtualHost *:80> 

DocumentRoot /www/example2 

ServerName www.example2.org 

# Other directives here 

</VirtualHost> 

     PidFile logs/httpd.pid #第有三个白多多httpd系统进程运行运行(所有有些系统进程运行运行的父系统进程运行运行)的系统进程运行运行号文件位置。 

     Listen 80 #服务器监听的端口号。 

     ServerName www.clusting.com:80 #主站点名称(网站的主机名)。 

     ServerAdmin admin@clusting.com #管理员的邮件地址。 

     DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。

Listen 80 NameVirtualHost 172.20.80.40 <VirtualHost 172.20.80.40> 

DocumentRoot /www/example1 

ServerName www.example1.com 

</VirtualHost> <VirtualHost 172.20.80.40> 

DocumentRoot /www/example2 

ServerName www.example2.org 

</VirtualHost> <VirtualHost 172.20.80.40> 

DocumentRoot /www/example3 

ServerName www.example3.net 

</VirtualHost>

Listen 80 

<VirtualHost 172.20.80.40> 

DocumentRoot /www/example1 

ServerName www.example1.com 

</VirtualHost> 

<VirtualHost 172.20.80.80> 

DocumentRoot /www/example2 

ServerName www.example2.org 

</VirtualHost> 

Alias /download/ "/var/www/download/" #访问时还不能 输入:http://www.custing.com/download/ 

<Directory "/var/www/download"> #对该目录进行访问控制设置 

Options Indexes MultiViews 

AllowOverride AuthConfig 

Order allow,deny 

Allow from all 

     worker因为httpd -l列出worker.c,则前要对下面的段进行配置: 

    KeepAlive On #开启持久性连接功能。即当客户端连接到服务器,下载完数据后仍然保持连接状态。

     (3)单个IP地址的服务器上基于域名的虚拟主机配置: 

1、基本配置

<IfModule worker.c> 

StartServers 2 #启动apache时启动的httpd系统进程运行运行个数。 

MaxClients 80 #最大并发连接数。 

MinSpareThreads 25 #服务器保持的最小空闲系统进程运行数。 

MaxSpareThreads 75 #服务器保持的最大空闲系统进程运行数。 

ThreadsPerChild 25 #每个子系统进程运行运行的产生的系统进程运行数。 

MaxRequestsPerChild 0 #每个子系统进程运行运行被请求服务好多个次后被kill掉。0表示不限制,推荐设置为800 

</IfModule> 

     MaxKeepAliveRequests 80 #有三个白多多连接服务的最多请求次数。 

     KeepAliveTimeout 80 #持续连接多长时间,该连接没人再请求数据,则断开该连接。缺省为15秒。 

别名设置
 

     对于没了
DocumentRoot指定的目录内的页面,既还不能 使用符号连接,也还不能 使用别名。别名的设置如下: 

        chkconfig --add httpd

     SymLinksIfOwnerMatch: 当使用符号连接时,还不还还都都可以 当符号连接的文件拥有者与实际文件的拥有者相一块儿才还不能 访问。 

     apache2主要的优势以后 我对多外理器的支持更好,在编译时同过使用--with-mpm选项来决定apache2的工作模式。因为知道当前的apache2使用哪些工作机制,还不能 通过httpd -l命令列出apache的所有模块,就还不能 知道其工作法律法律方法: 

     prefork:因为httpd -l列出prefork.c,则前要在httpd.conf的后边进行配置: 

格式中的各个参数如下: 

<IfModule perchild.c> 

NumServers 5 #服务器启动时启动的子系统进程运行运行数 

StartThreads 5 #每个子系统进程运行运行启动时启动的系统进程运行数 

MinSpareThreads 5 #内存中的最小空闲系统进程运行数 

MaxSpareThreads 10 #最大空闲系统进程运行数 

MaxThreadsPerChild 800 #每个系统进程运行最多被请求好多个次后退出。0不受限制。 

MaxRequestsPerChild 8000 #每个子系统进程运行运行服务好多个次后被重新fork0表示不受限制。 

</IfModule> 

%h --客户端的ip地址或主机名 

%l --The 这是由客户端 identd 判断的RFC 1413身份,输出中的符号 "-" 表示此处信息无效。 

%u --HTTP认证系统得到的访问该网页的客户名。有认证时才有效,输出中的符号 "-" 表示此处信息无效。 

%t --服务器完成对请求的外理时的时间。 

"%r" --引号中是客户发出的中含了有些有用信息的请求内容。 

%>s --你什儿 是服务器返回给客户端的状态码。 

%b --最后这项是返回给客户端的不包括响应头的字节数。 

"%{Referer}i" --此项指明了该请求是从被哪个网页提交过来的。 

"%{User-Agent}i" --此项是客户浏览器提供的浏览器识别信息。

6、日志的设置