httpd基础(2)

主配置文件/etc/httpd/conf/httpd.conf

主要分为三部分:

  • Section 1: Global Environment
  • Section 2: 'Main' server configuration
  • Section 3: Virtual Hosts

1、Global Environment

ServerRoot "/etc/httpd"
服务器设置的最顶层的根目录logs、modules等数据都放在这个目录下

PidFile run/httpd.pid
进程pid文件,启动服务后,主进程的id号就保存在这个文件里
它是个相对目录。考虑到ServerRoot,因此这个文件的绝对路径为/etc/httpd/run/httpd.pid

Timeout 60
连接等待超时时间60秒

KeepAlive On
是否允许持续性的连接,也就是一个tcp连接可以传送多个文件资料

MaxKeepAliveRequests 100
与keepAlive有关,定义该次连接最大传输数量。0表示不限制。

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
关于prefork模式的配置

<IfModule worker.c>
StartServers 3
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
关于worker模式的配置

Listen 80
默认监听端口

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
...省略以下
服务加载的模块,如果某些模块不需要,可以注释掉。

Include conf.d/.conf
加载额外配置文件,也就是/etc/httpd/conf.d/
.conf文件

User apache
Group apache
定义进程用户和组

2、 'Main' server configuration

ServerAdmin root@localhost
系统管理员邮箱,当网站出现问题时,错误信息会显示的邮箱(错误回报)
ServerName www.example.com:80
设置主机名。千万记得,输入的主机名要找得到IP。

DocumentRoot "/var/www/html"
定义默认的站点网页文档根目录

DirectoryIndex index.html index.html.var
默认主页,当定义的index.html和index.html.var这两个文件不存在,系统会找/var/www/error/noindex.html

站点访问控制的配置

1、基于客户端来源地址

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

  • Options:后跟1个或多个以空白字符分隔的选项列表
    在选项前的+, - 表示增加或删除指定选项
  • Indexes:表示当主页不存在时,允许用索引方式列出文件列表。如果禁止列出文件列表,去掉这个选项或者在选项前面加上-。
  • FollowSymLinks:允许访问符号链接文件所指向的源文件
    None:全部禁用
    All: 全部允许
  • AllowOverride None:表示与访问控制相关的指令可以放在指定目录下的.htaccess(由AccessFileName指定)文件中,覆盖之前<directory>里的配置指令。如:
    [root@CentOS6 html]#ls -a
    .  ..  a.html  b.tex  .htaccess  h.txt
    [root@CentOS6 html]#cat .htaccess
    options indexes followSymlinks
    #这里的.htaccess文件配置的options indexes followSymlinks,
    #会覆盖 <Directory "/var/www/html">里面相关的配置。
    
  • order:定义生效次序;写在后面的表示默认法则
    • Order allow,deny
    • Order deny,allow
    • Allow from, Deny from:如果没有该语句,则默认允许所有或者拒绝所有ip访问
  • 例1:
    <Directory "/var/www/html">
    Order allow,deny
    Allow from all
    deny from 172.16.100.122
    </Directory>
    #上面的配置allow允许所有ip访问,deny拒绝172.16.100.122。
    #由于order定义deny放在allow后面,因此deny会实际生效。
    
  • 例2:
    <Directory "/var/www/html">
    Order deny,allow
    Allow from all
    deny from 172.16.100.122
    </Directory>
    #上面的配置allow允许所有ip访问,deny拒绝172.16.100.122。
    #由于order定义allow在后面,因此allow会实际生效,172.16.100.122仍然可以访问/var/www/html。 
    #如果没有Allow from, Deny from 语句,则默认允许或者拒绝所有ip访问
    
    
2、基于用户账号控制访问

<Directory "/var/www/html/admin">
AuthType Basic
AuthName "admin directory"
AuthUserFile "/etc/httpd/conf.d/.httpusers"
Require user httpuser1 httpuser2
</Directory>
上面定义安全域/var/www/html/admin,当用户访问这个目录时,需要账号验证。
用户和密码文件保存在/etc/httpd/conf.d/.httpusers
可访问用户为httpuser1 httpuser2

用户创建命令

[root@CentOS6 conf.d]#htpasswd -c  /etc/httpd/conf.d/.httpusers httpuser1
New password: 
Re-type new password: 
Adding password for user httpuser1
  • htpasswd
    htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
    选项:
    -c:创建文件用户文件,仅仅在第一次文件不存在时使用。否则会覆盖源文件。
    -m:md5方式加密,默认选项
    -s:sha方式加密
    -D:删除用户
用户验证

日志配置

ErrorLog logs/error_log
错误日志保存在/etc/httpd/logs/error_log
/etc/httpd/logs/是个软连接。文件真实路径是
/var/log/httpd/error_log

LogLevel warn
错误日志等级
可选的值包括:debug, info, notice, warn, error,crit,alert,emerg.
LogLevel warn 表示记录warm级以上的日志,即warn, error,crit,alert,emerg

LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
定义日志格式。common、referer、agent表示格式的名称

%h:客户端IP地址
%l:远程用户,启用mod_ident才有效,通常为减号“-”
%u:验证(basic, digest)远程用户,非登录访问时,为一个减号“-”
%t:服务器收到请求时的时间
%r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本
%>s:响应状态码
%b:响应报文的大小,单位是字节;不包括响应报文http首部
%{Referer}i:请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的
%{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用

CustomLog logs/access_log common
使用上面定义的common这个格式作为日志格式

alias /download/ /app/download/
路径别名定义,格式: Alias /URL/ "/PATH/"
这里的定义表示当用户访问/var/www/html/download时,访问的是/app/download/这个目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,775评论 0 10
  • httpd相关: httpd程序版本: 。1.3 停止维护 。2.0 。 2.2 event为测试使用 。 2.4...
    ckhzw阅读 418评论 0 0
  • 一、概述 二、编译安装 三、httpd服务基础 四、httpd.conf配置文件 五、httpd服务访问控制 六、...
    紫_轩阅读 970评论 0 0
  • 我与经典款款情,国学邂逅定今生。心敏读经逢知己,朗朗读经呓语同。——罗心敏
    ac450a748a55阅读 110评论 0 1
  • 还有一个月就是参加工作一周年了,想想这一年自己得到了什么,又失去了什么,似乎没有得到什么,也没有失去什么,唯一能得...
    1840TO1921阅读 271评论 1 1