www服务器

网页服务器组成:
   1、LAMP(Linux、Apache、MySQL、PHP/Python)
   2、LAMMP(Linux、Apache、MySQL、Memcached(主要做缓存)、PHP/Python)



HTTP协议的连接与请求:
 HTTP1.0     TCP不能复用
 HTTP1.1     顺序性TCP复用
 HTTP2.0     多路复用TCP复用(并行)

测试用户访问控制的时候,如果出现500的错误,查看设置的路径是否正确

Apache:  curl --head 192.168.30.250 查看服务是什么服务
错误提示:
   1、大概意思是:不能给apache服务配置0.0.0.0/24这么一个网段;是因为SELinux的问题
   2、什么什么for  ServerName:是因为没有设置站点名称:ServerName www.example.com:80
   主目录: /etc/httpd/
   配置文件:/etc/httpd/conf/httpd.conf
当访问用户目录的时候:192.168.30.250/~user1,如何如何取消掉用~user来访问呢,这是需要用到软连接过来即可。ln ~user1/public_html/ /var/www/html/user1 
配置文件:
   ServerTokens OS
# 显示系统的版本号;如果访问的网页不存在时,会显示当前系统的一些信息。默认即可。

   ServerRoot "/etc/httpd"
# 如果下面的配置没有指定路径,将使用:/etc/httpd/ 目录

   PdiFile  run/httpd.pid
# 进程IP,所在位置:这里没有写明路径:则是上面的:/etc/httpd/下;/etc/httpd/run/httpd.pid

   TimeOut 60
# 超时时间,当客户端与服务端建立连接后,只要超过60秒就是超时的。要么断开,要么是重新连接。

   KeepAlive off
# 建立连接时需要3次握手,off表示:如果有多个小文件的时候,每传输一个文件,需要每次都建立一次连接。off:传完一个文件后连接就会断开,传输下一个文件的时候需要重新建立连接。
## 如果为on:表示传输文件时候建立的连接不断开,不需要再次建立连接。

   KeepAliveRequests 100
# 如果KeepAlive on的时候才会生效,off:是不生效的。
# 如果是on:在传输前100个文件时候都会保留这个连接。

   KeepAliveTimeout 15
# 保持激活的超时时间,如果是激活的:也就是上面的如果在保持这连接的情况下,当传输下一个文件的时间超过15秒,就会断开连接。当传输下一个文件的时候需要重新建立连接。

   perfork MPM
   worker MPM
# 2种常用的模块,默认运行的是:perfork MPM
# 在Apache2.0版本后,支持了MPM模块:多处理模块。
   <IfModule prefork.c>
   StartServers     8
## 默认启用8个进程,每有一个连接就会打开一个进程。为什么要默认开启进程:因为在有客户端进来连接的时候,可以提高服务器连接的反应速度
   MinSpareServers  5 
   MaxSpareServers  20
## spare:备用的。这2句是:如果有100个用户来访问,apache开启的进程数最少:105个,最多:120个。 
   ServerLimit      256
## 多少个客户端可以进行连接。
   MaxClients       256
## 有多少个客户端可以同时连接我的服务器。 也就是并发量:单位时间内可以处理的用户请求。
   MaxRequestsPerChild   4000 

   Listen 80
# 监听的端口号。默认80

   LoadModule *****
# 当前系统加载的模块。不同的模块实现不同的功能。

   Include conf.d/*.conf
# 当运行httpd.conf配置文件的时候,会将 conf.d 目录下所有.conf结尾的文件包含进来。

   User apache
   Group apache
# 进行运行的时候,所有者和所属组都是apache.可以提高系统安全性,如果黑客获取到WEB的权限仅获取的是apache的权限,并没有其他的权限。所以:只影响的是apache服务。

   ServerAdmin root@localhost
# 指管理员的邮箱。如果站点出现了问题就会讲问题发送到这个邮箱。
 
   ServerName www.example.com:80
# 用来设置站点名称。

   DocumentRoot "/vat/www/html"
# 站点目录,这是默认的,可以修改成需要的。  
   <Directory />
     
   </Directory>
## 用来管理某一个目录的访问权限,以及它的一些属性,注意第一个<>中的/是目录:根目录的意思。这个根的意思是:/etc/httpd/ 这个目录,并不是我们系统的根
   <Directory "/var/www/html">

   </Directory>
## 对文档主目录的选项及配置,及权限的设置。
其中:
   Options Indexes FollowSysLinks:
# Indexes:作用:如果访问的目录中没有对应的index.html文件的话,会将这个目录下所有的文件列出显示。 去掉Indexes选项就会隐藏该目录下的文件。再访问的时候就会提示:Forbindden,如果访问里面的文件是可以正常访问的。
如:www.kun.cc.com/test/aa.txt 是可以访问的

## FollowSymLinks:可以做一个虚拟目录。
示例:在根下创建一个目录xx,里面创建一个index.html文件。然后软连接到/var/www/html/目录下 命名为:yy
ln -s /xx/ /var/www/html/yy ,这时候访问 www.kun.cc.com/yy/是可以访问到xx里面的index.html文件的,这就是虚拟目录的作用。

## AllowOverride None:会覆盖<Directory>中定义的属性 

   Order allow,deny
   Allow from all
## Order 是顺序,所以后面跟什么,顺序就很重要了,这里的deny是在最后:就表示默认的。
##### 如果在 allow deny 中有冲突的,则:默认的生效。 
### 先写:Allow form all 还是先写:Deny from all 是不区分的。
# 访问的顺序,这里下面还应该有:deny from all
## 设置的是访问控制列表,哪些用户可以访问,哪些不可以访问。
示例1:
   属性顺序:
Order allow,deny
Allow from all
Deny from all
## 这个时候,deny是默认的,并且,先允许所有的,下面有拒绝所有的,这时候:默认生效。

 示例2:
Order deny,allow
Allow from 127.0.0.1
Deny from all
## 这时候允许,拒绝是冲突的,但是,会允许:127.0.0.1访问,因为allow在数序的后面,是默认的。
###但是需要注意的是:127.0.0.1,是本机的,而不是访问的IP地址。所以这时候应该在有httpd服务的主机上访问才可以正常访问。

 示例3:对目录做访问限制
<Directory "/var/www/html/xx">
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Allow from 127.0.0.1
  Deny from all
<>
## 这个时候只有本机的127.0.0.1才可以正常访问 xx 目录,
###但是需要注意的是:这时候访问显示的是:Forbinden 无法访问的,这是因为在Options中没有选项:indexes。

是否启用用户家目录:
  <IfModule mod_userdir.c>
    userDir disabled  #注释掉或改成 enabled
    UserDir public_html  #目录名字,可以指定,但是穿件的时候要与之对应。
  <Ifmodule>
  在用户家目录中创建对应名字的目录,然后在该目录下创建一个 index.html 文件,需要重启服务,关闭SELinux,可以正常访问到用户的家目录:192.168.30.250/~user1/ ,但是需要注意的是:用户的家目录:user1,是对其他人没有rx的权限的,所以这时候是不能正常访问的,所以需要添加:chmod o+rx ~user1/,这时候就可以真正的访问到了,如果开启SELinux需要修改 public_html 目录的上下文:chcon -R --reference=/var/www/html ~user1/public_html,设置后即可正常访问。
   恢复: restorecon -R ~user1/public_html/
 然而设置了上下文后不能正常访问,这时候查看SELinux的波尔值,getsebool -a | grep httpd 查看httpd相关的波尔值,之后,设置:setsebool httpd_homedirs on


  DirectoryIndex  index.html index.html.var
# 指定访问的主页文件。

   AccessFileName .htaccess
# 对一个文件访问验证加密,
示例:
   如果要对 /var/www/html/xx/ 目录做访问加密,
1、进入xx目录创建隐藏文件:vim .htaccess
  AuthName 验证的名字  # 出现在提示框上的。
  AuthType Basic #验证的类型,Basic基本验证。
  AuthUserfile /var/www/html/.htpasswd #这个路径可以随便写的。
  require user user1 # 允许哪个用户登录
2、创建 .htpasswd 文件
   htpasswd -cm /var/www/html/.htpasswd user1
##回车后会让输入验证的密码。
# -c:如果没有创建
# m:md5加密
#######这个时候访问是不需要密码的,这是因为,需要在配置文件:httpd.conf中需要配置一个功能,启用验证。
  在<Directory> 标签中:AllowOverride AuthConfig 设置即可。

   ScriptAlias  /cgi-bin/  "/var/www/cgi-bin/"
# 脚本别名,用于存放脚本,cgi-bin在 /var/www/目录下。这里的:/cgi-bin/ 根指的是:/var/www/html 上面指定的,访问格式:192.168.30.250/cgi-bin/test.sh

脚本中指定html的格式:echo "Content-Type:text/html"

访问格式:192.168.30.250/cgi-bin/xx.sh

设置别名:
Alias /example/ "/example/"
##这是相当于一个软连接,如果访问httpd的/var/www/html/example目录其实访问的是系统下面的 /example/下的文件。
#####这里的格式,必须一致才可以,如:/example/ 前后都有杠 / ,则后面定义的时候也必须前后都有杠,这是与理解成软连接的差异。

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset-UTF-8
#设置服务的编码格式。

AddLanguage ca .ca
## apache所支持的一些语言

LanguagePriority en ca cs ds de 
## 语言的优先级

AddDefaultCharset UTF-8
#语言编码

<IfModule mod_proxy.c>
<Proxy *>
</Proxy>
## 这些标签用来设置apache做代理用的。

最下面的部分:用来做虚拟主机。

虚拟主机:3种
     1、基于IP地址的虚拟主机
     2、基于主机名的虚拟主机:使用的名字是同一个名字。
     3、基于端口的虚拟主机
前2个用到的比较多。

DNS需要拷贝的一些文件及目录,实际测试不用拷贝也可以,但是为了chroot

修改配置文件:/var/named/chroot/etc/named.conf
 修改: %s/127.0.0.1/any/g   %s/localhost/any/g

定义区,在区中定义域:

配置域配置文件:
  cd /var/named/chroot/var/named/
  cp -p named.localhost aa.zone
定义这个文件的时候,server.rhce.cc. 要换成server. 否则会报错。也就是在named.conf中定义的zone,中的域不需要加在后面,加了报错了。


启动named服务时候 DNS:需要密钥时候
   rndc-confgen -r /dev/urandom -a

重启服务
修改本机的DNS配置文件:/etc/resolv.conf
添加:nameserver 127.0.0.1

添加对应端口:
 iptables -I INPUT 1 -p tcp --dport 53 -j ACCEPT
 iptables -I INPUT 1 -p udp --dport 53 -j ACCEPT


Apache配置一个基于主机名的虚拟主机:所有的虚拟主机公用的一个IP地址。
    开启:NameVirtualHost *:80  这一行注释去掉
# 如果是基于主机名的,必须启用这行。

<VirtualHost *:80>
   ServerAdmin
   DocumentRoot
   ServerName
   ErrorLog
   CustomLog
</VirtualHost>
# 用来定义虚拟主机的。 
##ServerAdmin 设置管理员邮箱的,可以删除
##ErrorLog:错误日志,
##CustomLog:日志。

在 /etc/httpd/conf/httpd.conf 中添加站点
  如果用的不管是基于IP的虚拟主机还是,基于主机名的虚拟主机,在设置完站点后,必须将原来的站点加上,否则原来的站点无法访问。
   apache,原来默认的站点是:/var/www/html/

需要在客户机上配置 我们的DNS服务器:
   /etc/resolv.conf
servername  192.168.30.250

如何设置的:?
   首先需要在服务商安装DNS服务器(注意配置文件,以及zone的格式),编写上方的域等配置,具体修改见下面截图,WEB服务与DNS服务在一台主机上的,如果在服务端查询域名对应的IP地址,设置本机的DNS配置文件:/etc/resolv.conf.当客户端访问的时候,也需要在自己的DNS配置文件中指明本地搭建的DNS服务器的IP地址:/etc/resolv.conf




这时候有个问题:客户端在访问不同的域时显示的IP地址都是一样的,服务端是怎么区分客户端进入的是哪个站点呢?
   这是因为,在客户端请求的时候,在请求里面有对应站点的名字,服务器端就是根据这个站点来完成的。
以上就是基于主机名的站点:


独立IP地址的空间,不同的站点都有自己的IP地址。
   在网卡上虚拟IP地址:
  ip addr add 192.168.88.71/24 dev eth0 label eth0:1
  ip addr add 192.168.88.72/24 dev eth0 label eth0:2
  ifconfig eth0:0 192.168.88.73/24 
 
需要修改不同域中.zone配置文件中的IP地址。对应上71  72。
修改httpd配置文件,


测试的,不确定是否可行:NameVirtualHost 192.168.88.68 注释掉是可以访问到的(打开,需要这句。)
VirtualHost 标签中的IP地址后的端口号不加的话,也是可以访问到的 。




哈希函数加密:当输入不定长的数据时,都可以得到一个定长的密码长度。
在http连接的时候,都是明文传输的。

对HTTP加密:
https工作原理:
    对称加密算法:加密和解密必须使用相同的数据。加密以后生成的密钥是没办法传输的。
加密大数据:块。
缺点:密钥无法传输:

    非堆成加密:公钥,私钥。
      当B要给A发送数据的时候,首先要获得A的公钥,然后B将要发送的数据,用获取到的A的公钥进行加密,然后再发送给A。
      这时候在B如和解密的:首先A需要获得B的公钥,然后A会将获得到的B的公钥,用来加密刚才传输数据时的密钥,然后再发送给B,当B收到的时候,首先B解密B公钥加密的私钥从而获得对称加密数据的私钥(解密出来的就是私钥),然后用私钥再去查看传输的数据。
       
   解密就需要:这个公钥所对应的私钥才可以。
缺点:加密小数据时还行,如果加密大数据效率会很慢。

做数字签名:数字签名:使用私钥加密,公钥解密,而加密时:公钥加密,私钥解密。
A向B发送数据:
     首先A会用哈希函数对要发送的数据进行加密,从而得到一个哈希值,然后用自己生成的私钥来加密生成的哈希值,然后会将 原要发送的数据 和 加密后的哈希值。 当B收到数据以后,会用相同的哈希函数,重新取一个哈希值,这个时候,B就会收到2个哈希值,一个是从A收到的(A的私钥加密的哈希值),另一个是用相同函数生成的哈希值。因为公钥是都可以获取到的,所以这时候B就会对,从A获取到数据(A私钥加密的哈希值),进行解密,从而得到一个解密后的:哈希值(A生成的)。然后B就会判断这2个哈希值是否一样,如果一样就表示是A发送过来的。否则就是伪冒的。

为什么会有CA证书:
    因为在传输加密数据的时候,用的是对方的密钥对,然而这个密钥对并不予生成这个密钥对的机构有必然的联系。所以这个密钥对可以随意丢弃,从而可以说这个密钥对不是自己生成的。
    CA证书的作用:为了绑定密钥对与实体之间的关系。
   当客户端向服务器发送请求的时候,服务器会将自己的证书(CRT:是由CA签名的)发送给客户端 ,当客户端收到这个证书的时候会用CA的公钥来判断这个证书是否是CA颁发的。当传输数据的时候,客户端会对称加密生成密钥,然后用证书(也就是服务器的公钥)进行加密生成的密钥,然后传送给服务器,(因为使用服务器的公钥加密的,所以服务器肯定能用自己的私钥解密)。从而客户端与服务器之间就会使用生成的这个密钥进行数据加密(客户端生成的,用服务器公钥加密后的)。

在客户端上已经内置了很多CA的公钥
   查看:火狐为例:编辑->首先项->高级->加密->查看证书。
示例:支付宝
支付宝向CA注册的时候,需要提供机构信息,以及公钥,并将这些数据做数字签名。也就是将机构信息、公钥,用自己的私钥进行加密后发送给CA。然后CA会对支付宝发送的申请进行验证,如果申请通过就会颁发给支付宝一个证书(这个证书就是一个公钥,并且有CA的签名)。


支持HTTPS:
   安装ssl模块支持
 yum install mod_ssl -y

添加防火墙规则:
   iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT

ssl.conf配置文件:
   SSLEngine  on 
# 是一个引擎。
   SSLCertificateFile /etc/pki/tls/certs/localhost.crt
#也就是指定证书的位置
#证书文件, CA颁发的证书文件,现在并不存在,不能用。
生成证书:
   首先需要生成密钥对,



   SSLCertificakeKeyFile /etc/pki/tls/private/localhost.key
#指定私钥的位置
#密钥,每个服务有的自己的私钥。

将生成的证书拷贝到 /etc/httpd/conf/ 目录下,并修改ssl.conf文件中证书以及密钥位置

此时再重启服务的时候,就需要重新输入,证书时候的 密码。

当使用https访问的时候就会下页面上显示,是否信任此证书的询问。

搭建多虚拟站点时, HTTPS 无法正常使用

服务器检测工具:
  yum install webblizer  -y
#分析系统日志
配置文件: /etc/webzlizer.conf
   LogFile /var/log/httpd/access_log
# 指定分析的日志
   OutputDir /var/www/useage
#分析日志后结果存放

这个文件就会根apache绑定在一起。

运行:webalizer  才会对日志分析,放到:/var/www/usage/ 目录下

kun.cc/usage/index.html


 yum localinstall awstats-7.0-2.el6.noarch.rpm
# 有许多依赖,所以用本地安装。
、配置文件: /etc/awstats/
 在这个目录下有:awstats主机名.conf这么个文件,重命名为:awstats.conf
因为这个文件默认是没有的。
  启动文件位置: /usr/share/awstats/wwwroot/cgi-bin/ 下有2个配置文件,

./awstats.pl -config=www -update -output > index.html
生成的 index.html 就是对日志分析的结果

rpm安装后awstats的配置文件路径:

创建awstats的配置文件: awstats.conf

日志分析需要执行的脚本文件:

这个是设置个别名,但并没有用到,直接将分析出来的结果软连接到对应的WEB目录下也可以正行访问到分析的结果

这个修改很重要:表明awstats要分析的日志文件:日志的格式:combined

执行日志分析脚本,将结果保存:index.html

执行分析:

如果没有正常分析日志:确保awstats的配置文件:/etc/awstats/awstats.conf。(这个配置文件默认是没有的,拷贝:awstats.主机名.conf 过来作为:awstats.conf 配置文件)
   然后修改:配置文件分析的日志文件路径:绝对路径:LogFile。
   

apache压缩及缓存时间
./configure --prefix=/usr/local/httpd/ --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expires
--enable-deflate : 网页压缩功能。
     需要安装:zlib-devel软件包的支持
--enable-expires : 配置页面的缓存时间。




修改隐藏apache版本信息


ab测试:
   ab  -n  1000 -c 10 www.kun.cc/index.html
#发送1000次请求,建立10个连接
# -n 访问的次数
# -c 建立的连接数

如果测试的是: www.kun.cc 则需要在后面加一个 / 才可以
  ab -n 100 -c 100 www.kun.cc/


Prefork工作模式:
    prefork是一个多路处理模块(MPM),实现了一个进程型的,预派生的web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统。
    在要求每个请求相互独立的情况下具有很好的特性,若一个请求出现问题不会影响到其他请求。
    具有很强的自我调节能力,只需要很少的配置指令进行调整就可以适合与企业应用要求
    最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以避免所需的内存超除物理内存的大小。

   一个单独的监控进程(父进程)负责产生子进程,子进程用于监听请求并做出应答,因此在内存中会一直存在一些备用的(spare)或是空闲的子进程用于响应新的请求,可加快响应速度。
   父进程通常以root身份运行,以便绑定80端口,子进程通常以一个低特权的用户运行,可通过配置项的User和Group配置。
   运行子进程的用户必须要对网站内容有读取权限,但是对其他资源必须拥有尽可能少的权限,以保证系统安全。
   编译安装时没有指定工作模式,默认会使用prefork模式,用httpd  -l  查看那

在httpd-mprm.conf配置文件中,是prefork模块的定义:
     <IfModule mpm_prefork_module>
          StartServers        5
          MinSpareServers     5
          MaxSpareServers     10
          MaxClients          150
          MaxRequestsPerChild 0
     </IfModule>
参数说明:    
   ServerLimit的值必须大于等于 MaxClients 的值。

    StartServers:指定服务器启动时建立的子进程数量 

    MinSpareServers:指定空闲子进程的最小数量,当空闲子进程数少于MinSpareServers,Apache产生新的子进程
# 主要应用在服务器比较繁忙的时候。

    MaxSpareServer:配置空闲子进程的最大数量,当前有超过MaxSpareServers的空闲子进程,那么父进程将杀死多余的子进程

    MaxClients:限定同一时间客户端最大接入请求的数量。 转未兆未单位后,再除以,也就是内存一半

    MaxRequestsPerChild:每个子进程在其生存期允许伺服的最大请求数量,如果设置为0,子进程将永远不会结束,建议设定未一个非0值,子进程达到设置的值的线之后,子进程将会结束
    MaxRequestsPerChild配置成非零值:
  1、能够防止内存泄漏无限进行,从而避免内存耗尽。
  2、给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

设置Prefork参数:需要引用:
   Include  conf/extra/httpd-mpm.conf.


优化建议:
1、StartServers与MinSpareServers应该一样
2、根据网站的访问量进行设置,如设置MaxClients的数量为较大的一个值,以满足请求
3、MaxRequestsPerChild应该设置一个值 (建议在10000 到 30000 之间)
4、要结合系统的内存数量及负载进行配置
5、默认的MaxClient最大是150个进程,如配置更大值,就得配置ServerLimit这个参数,20000是该参数的最大值。如需要更大值,需要重新编译。

优化后: 512M内存的参考配置:ab工具不准确,优化后反而更慢了。


Worker工作模式:流量越大的网站可以使用worker模式,没有perfork安全。
   worker也是多路处理模块(MPM),使网络服务器支持混合的多线程多进程。
   由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。
   但是也是用了多进程,每个进程又有多个线程,以获得基于进程的MPM的特定性。
   控制该MPM的最重要的指令是:控制每个子进程允许建立的线程数 ThreadsPerChild指令和控制允许建立的总线成数的MaxClients指令。

工作方式:
1、每个进程能够拥有的线程数量是固定的,服务器会根据负载情况增加或减少进程数量。
2、一个单独的控制进程(父进程)负责子进程的建立。每个子进程能够建立ThreadsPerChild数量的服务线程和一个监听线程,监听线程监听接入请求并将其传递给服务线程处理和应答。
3、Apache总是会维持一个备用(spare)或是空闲的服务线程池,客户端无序等待新线程或新进程的建立即可得到服务。
4、父进程一般都是以root身份启动,以绑定80端口;随后,Apache以较低权限的用户建立子进程和线程。
5、User和Group指令用于配置Apache子进程的运行用户,子进程要对网页内容拥有读权限,但应该尽可能限制权限。

<InModule mpm_worker)module>
     StartServers          2
     MaxClients            150
     MinSpareThreads       25
     MaxSpareThreads       75
     ThreadsPerChild       25
     MaxRequestsPerChild   0
</IfModule>
参数说明:
     StartServers:服务器启动时建立的子进程数。

     MaxClients:同时伺服的最大接入请求数量,即最大线程数量,超过MaxClients限制的请求都进入等候队列。默认值是“150”,
6(ServerLimit)乘以25(ThreadsPerChild)的结果,要加大MaxClients,要同时增加 ServerLimit

     MinSpareThreads:最小空闲线程数,如服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

     MaxSpareThreads:配置最大空闲线程数,如服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程

     ThreadsPerChild:每个子进程建立的常驻的执行线程数,子进程在启动时建立这些线程后就不再建立新的线程。

     MaxRequestsPerChild:配置每个进程在其生存期内允许伺服的最大请求数量,到达改值的限制后,子进程将会结束。


Apache目录属性
   Apache的配置文件中,对每一个目录都会有相关属性的设置。
   目录的权限设置使用<Directory 目录路径> 和 </Directory> 这对语句为主目录或虚拟目录设置权限,他们是一对容器语句,必须成对出现,他们之间封装的是具体的设置目录权限语句,这些语句仅对被设置目录及其子目录起作用。 

Options参数:用于定义目录使用的哪些特性
     Indexes:当客户指定要访问的目录,但没有指定要访问哪个文件,而且目录下不存在默认网页时,返回目录中的文件和子目录列表。
     MultiViews:内容协商的多重试图,Apache的一个只能特性。当客户访问目录中一个不存在的对象时,如访问 “http://192.168.88.88/icons/a” , Apache会查找这个目录下所有a.*文件,如icons存在a.gif文件,会将a.gif 文件返回给客户,而不返回出错信息。
     ExecCGI:允许在该目录下执行CGI脚本。
     FollowSymLinks:可以在该目录中使用符号连接
     Includes:允许服务器端包含功能。
     IncludesNoExec:允许服务器端包含功能,但禁止执行CGI脚本。
     All:包含了除MultViews之外的所有特性,如果没有Options语句,默认为All。

AllowOverride:AllowOverride选项用于定义位于每个目录下 .htaccess(访问控制,就是用于填写授权访问指令的文件)文件中的指令类型。 这个值经常为None。如果使用会加大服务器的开销
     None:当AllowOverride被色画质为None时,不搜索该目录下的 .htaccess 文件。
     All:可在 .htaccess 文件中可以使用所有访问控制指令。

设置Apache的模式:
   需要在预编译的时候设置:
--with-mpm=worker


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值