httpd配置文件详解、虚拟主机实现、身份验证实现

本文针对的是Server version: Apache/2.4.6 (CentOS)

1 httpd 命令

[root@node-43-200 ~]#httpd -h
Usage: httpd [-D name] [-d directory] [-f file]
             [-C "directive"] [-c "directive"]
             [-k start|restart|graceful|graceful-stop|stop]
             [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Options:
  -D name            : define a name for use in <IfDefine name> directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed vhost settings
  -t -D DUMP_RUN_CFG : show parsed run settings
  -S                 : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files
  -T                 : start without DocumentRoot(s) check
  -X                 : debug mode (only one worker, do not detach)

2 配置文件规则及常见指令

httpd核心是配置文件,各种功能都是都过配置文件来实现。使用yum安装的默认主配置文件主要分为几类:
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-cgi.conf
接下来按照以上目录详细说明各个模块的作用。

2.1 httpd.conf 主配置文件

本文按照apache http主配置文件内容顺序逐条讲解。它包含给服务器指令的配置指令;更多的信息参考官方文档
配置和日志文件的命名:如果为服务器显示的用“/”指明路径,则用的是绝对路径,如果没有“/”,用的则是相对路径。

ServerRoot "/etc/httpd"

定义了配置文件、错误日志等目录的根,配置文件中的指令值的相对路径都是以该目录为参考点。
不要在目录路径的末尾添加斜线。如果将serverroot指向非本地磁盘,请确保在mutex指令中指定一个本地磁盘(如果使用基于文件的互斥)。如果希望为多个httpd守护进程共享同一个serverroot,则至少需要更改pidfile。

Listen 80
Listen 192.168.100.100:8080

Listen 指定一个IP或者端口来代替默认的80端口,端口,ip可以监听多个。

Include conf.modules.d/*.conf

Include 指明加载模块,所有该目录下的conf文件指定的模块都会加载。此处是加载模块的总领,具体可以在conf.modules.d/目录下修改
httpd启动时候会自动解析配置文件,并在多出的解析中对重复项目进行合并,支持通配符*?[].include 指令值可以使用相对路径也可以使用绝对路径。如果include包含的文件不存在时,将报错。这时可以使用 IncludeOptional 指令进行加载,这表示存在则加载,不存在就算了

User apache
Group apache

指定以哪个用户,哪个组来运行httpd程序,因为不用的用户、组对系统的文件系统有不同的访问权限。

ServerAdmin root@localhost.com

定义管理员邮箱,在某些自动生成的错误页面中可能会使用该邮箱,展示给客户端。

#ServerName www.example.com:80

用于唯一标识提供web服务的主机名,只有在基于名称的虚拟主机中该指令才是必须提供的。也就是说,如果不是在基于名称的虚拟主机中,可以任意指定该指令的值,只要你认为它能唯一标识你的主机。但如果不设置该指令,那么httpd在启动时,将会反解操作系统的IP地址
此项是默认关闭,一般服务程序会自动标明,但是我们也可以手动指定,防止程序启动时候出现问题。如果没有注册的DNS域名,可以输入IP地址

<Directory />
    AllowOverride none
    Require all denied
</Directory>
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值