httpd配置说明(2)

接着上一期说完的MPM来说,首先我们来看看关于站点访问控制如何进行配置:

首先你要定义文件系统路径,就是你的网站根目录。定义可以分为以下三类:

  • <Directory “你的文件位置”> 在这里定义</Directory> 针对于文件路径下的文件(目录下的文件)
  • <File “你的文件位置”>  在这里定义</File> 针对于单个文件
  • <FileMatch “正则表达式匹配”> 在这里定义</FIleMatch> 使用grep正则表达式来定义文件

然后我们来看看可以在访问控制中定义哪些选项:

httpd09在上图中我画出了三个常用的选项,这个摘取自主目录默认定义的内容,首先看看options(选项)后面可以跟:Indexes、Includes、Followsymcinks、Symlinksifower Match、Exec-CGI、Execcgi、Multiviews、[NONE、All]这些选项在上面的介绍中都有。如果需要选项的解释可以在官网中找到!不过我先说说默认提供的选项:

  • Indexes:索引:此项在下载站比较合适,应为当网页文件中并没有index.html主页的时候会把所有网站的文件节点全部让访问者看。就像你在WEB中输入FTP地址一样吧网站内容供给别人下载!!
  • FollowSymlinks:允许跟踪符号链接文件。

再看看AllowOverride这玩意,这个我在这一期讲过。是否允许覆盖当前的配置网络路径下的.htaccess

除了这种选项之外还可以定义关于基于IP地址或者使用用户名密码的方式进行访问控制!

基于IP地址的访问控制:Require。

httpd2.4采用了全新的机制来控制关于IP地址的访问不像httpd2.2那样还要制作关于白名单和黑名单的麻烦(allow和deny的位置容易让别人搞晕),只需要定义完毕全部放行或者全部阻塞然后填入你想放行的地址或者你想阻塞的地址即可:

  • 允许所有主机访问:Require all granted
  • 拒绝所有主机访问:Require all denied

定义好了大方向的主机访问,如果你需要的话还得定义一下IP地址,控制特定IP访问如下:

  • Require iP IPADDR 授权制定来源地址的主机访问
  • Require not ip IPADDR 拒绝指定来源地址的主机访问
  • 关于IPADDR的语法格式可以写这几种情况:IP+MASK | IP | 网段/MASK | 网段 | 网段/Length(掩码位数)

注:在增加拒绝指定来源地址的主机访问时必须使用<RequireAll> </RequireAll>包裹起来,比如:

<ReuqireAll>
Require all granted
Require not ip IPADDR
</RequireAll>

基于用户名密码的方式来定义访问控制:

关于这种方法必须有放置用户名和密码的位置,一般在apache中我们都吧用户名密码加密放置在某个目录中!而且用在内网的较多,如果你有一个私密的WEB服务器只针对朋友或者小组开放也可以用。定义访问控制的语法:

<Directory “”>
options None
AllowOverride None
AuthType Basic  认证类型,Basic是属于明文传输
AuthNAME “定义用户密码认证的名字”
AuthUserFile “/PATH/TO/HTTPD_USER_PASSWD_FILE”   用户名密码的文件放置在哪边?
Require user USERNAME1……  允许文件中那些用户可以登录?或者Require valid-user在定义的文件中的所有用户皆可登陆
</Directory>

定义好了网站的配置文件,随后定义存放用户名密码的文件,但是我们应该不能直接VIM一个文件输入用户名密码吧?不然被别人看到多不好?应该加密密码存放就像/etc/shadow一样。现在我们只需使用httpd的额外工具即可:htpasswd

比如这样定义:htpasswd -cm /etc/httpd/conf cookie 这里分别写出了-c代表了自动创建了这个文件(第一次定义一个用户的时候使用)然后-m使用md5加密,然后写上了放置位置和用户名。随后回车后输入密码即可加密。

注:定义完一个新的用户密码文件以后打算添加第二用户、第三用户记得别使用-c选项!

用户定义也说完了,现在就剩下了日志定义和关于虚拟主机定义。不过虚拟主机定义非常方便在httpd2.4注释掉在主配置文件的DocumentRoot的路径在/etc/conf.d重新定义一个*.conf即可!

 

Comments

Leave a Reply

Your email address will not be published. Name and email are required