httpd的配置详解(二)

部署环境(关闭防火墙、selinux)

[root@miner_k ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)

第二部分:中心主机的配置

ServerAdmin root@localhost   #如果网站有问题需要联系的管理员邮箱
ServerName www.miner_k.com:80 #主站点名称(网站的主机名)。  
DocumentRoot "/var/www/html" #主站点的网页存储位置

<Directory "/var/www/html">    #对访问目录的访问控制
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

参数的简介:
Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:

    ExecCGI: 在该目录下允许执行CGI脚本。 
    FollowSymLinks: 在该目录下允许文件系统使用符号连接。 
    Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。 
    SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
    Includes    允许执行客户端
    MultiViews  多功能视图,和客户端协商的机制,根据客户端的语言返回的语言也不同

AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):

    None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。
    All: 在.htaccess文件中可以使用所有的指令。
    其他的可用值及含义(如:Options FileInfo AuthConfig Limit等),

Order:控制在访问时Allow和Deny两个访问规则哪个优先:

    Allow:允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。
    Deny:拒绝访问的主机列表。
    order中定义了allow和deny的优先级别,写在后面的优先级较高。下面allow和deny的顺序没有关系

DirectoryIndex index.html index.htm index.php #主页文件的设置(本例将主页文件设置为:index.html,index.htm和index.php)


不同网段的访问控制

     只允许192.168.0.0网段
        order  allow,deny
        allow  from  192.168.0.0/24      

        order  deny,allow
        deny from  all
        allow  from  192.168.0.0/24   


     拒绝10.0.0.0网段
        order  deny,allow
        deny from 10.0.0.0/24
        allow from  all


> 用户认证的控制

(1)修改配置文件

Alias /download/ "/var/www/download/" 
<Directory "/var/www/download"> 
    Options Indexes
    AllowOverride authconfig         #可以换成none不认证   authconfig 需要认证
    authname "auth"
    authtype basic                   #认证类型
    authuserfile /etc/httpd/users    # 用户的配置文件
    require user user1               #运行用户配置文件中的user1登录
    order allow,deny
    allow from all
</Directory> 

(2) 创建用户和密码文件

htpasswd -c  -m  /etc/httpd/users user1
htpasswd   -m  /etc/httpd/users user2

参数:
-c  创建文件
-m  密码是使用MD5加密

控制不同用户的验证登录配置:

AuthType Basic                      #认证类型是基本认证
AuthName "Restricted Files"         #认证提示
AuthUserFile /var/httpuser/passwords#认证时的账号和密码文件
Require user bearzhang              #只有berzhang这个用户才能登录
#Require valid-user                 # 允许文件中的所有用户登录

控制不同组的用户登录配置

AuthType Basic                  #认证类型是基本认证
AuthName "Restricted Files"     #认证提示
AuthBasicProvider file           
AuthUserFile    /passwords      #认证时的账号和密码文件
AuthGroupFile   /groups         #内容组名:用户 mygroup:user1    user2
Require  group  GroupName      #只有mygroup组中的用户才能登录


> 访问日志格式的配置
ErrorLog logs/error_log #日志的保存位置 
LogLevel warn           #日志的级别 
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

格式中的各个参数如下:

%h —–客户端的ip地址或主机名
%l —–The 这是由客户端 identd 判断的RFC 1413身份,输出中的符号 “-“表示此处信息无效。
%u —-由HTTP认证系统得到的访问该网页的客户名。有认证时才有效,输出中的符号 “-” 表示此处信息无效。
%t —-服务器完成对请求的处理时的时间。
“%r” —-引号中是客户发出的包含了许多有用信息的请求内容。
%>s —-这个是服务器返回给客户端的状态码。
%b —-最后这项是返回给客户端的不包括响应头的字节数。 、
“%{Referer}i”—-此项指明了该请求是从被哪个网页提交过来的。
“%{User-Agent}i” —-此项是客户浏览器提供的浏览器识别信息。

下面是一段访问日志的实例:
192.168.10.22 - bearzhang [10/Oct/2005:16:53:06 +0800] “GET /download/ HTTP/1.1” 200 1228
192.168.10.22 - - [10/Oct/2005:16:53:06 +0800] “GET /icons/blank.gif HTTP/1.1” 304 -
192.168.10.22 - - [10/Oct/2005:16:53:06 +0800] “GET /icons/back.gif HTTP/1.1” 304 -
各参数的详细解释,请参阅:http://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats



> 定义URL的访问控制

可以定义使用的方法:POST GET 等
使用localtion容器可以控制URL的访问控制等。此处是查看服务器的状态

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .example.com
</Location>
配置Apache的CGI脚本

修改配置文件部分:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

设置CGI的脚本:

[root@miner_k ~]# cd /var/www/cgi-bin/
[root@miner_k cgi-bin]# cat test.sh 
#!/bin/bash

cat <<-EOF
Content-Type:text/html    #此处需要以下要留一行否则访问会报错

<html>
    <h1>
    $(/bin/date)
    </h1>
</html>
EOF
[root@miner_k cgi-bin]# chmod +x test.sh
设置默认的编码格式
AddDefaultCharset UTF-8
设置PID文件的存放位置
PidFile "/var/run/httpd.pid"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值