apache配置详解与实践

1、配置文件说明

1.1 主配置文件目录

vi /etc/httpd/conf/httpd.conf
apache配置详解与实践

1.2 配置文件格式

# directive 指令     value  值
ServerRoot   "/etc/httpd"

ServerRoot 代表apache服务的根路径,一般不修改。

2、配置项详解

2.1 ServerRoot

服务所在目录的路径,不需要做修改

ServerRoot "/etc/httpd"

2.2 Listen

监听端口

#Listen 12.34.56.78:80                                                                                                                 
Listen 80 

配置语法
Listen [IP-address:]portnumber [protocol]
使用场景
默认监听80端口,浏览器访问127.0.0.1或localhost或服务器ip能得到默认欢迎页面。
也可以同时监听多个端口。
实践

# 1. 修改端口号
Listen 8080

# 2. Listen指令可重复出现多次
Listen 8080
Listen 80

# 注意:修改后必须重启服务才可生效
[root@localhost conf]# systemctl restart httpd.service

2.3 Include

导入配置文件
Include conf.modules.d/*.conf
apache配置详解与实践

2.4 IncludeOptional

和include功能相同,都是导入配置文件的。区别是IncludeOptional导入的路径有问题时会被忽略。不会报错。

IncludeOptional conf.d/*.conf         

apache配置详解与实践

2.5 User和Group

httpd服务子进程启动时的账号和组,这个不用修改

User apache
Group apache

2.6 ServerAdmin

服务运行时的管理员邮箱地址

ServerAdmin root@localhost

2.7 DocumentRoot

站点根目录
在这个文件夹下放数据的

DocumentRoot "/var/www/html"

语法

DocumentRoot directory-path

实践

#DocumentRoot "/var/www/html"                                                                                                          
DocumentRoot "/www"

#<Directory "/var/www/html">                                                                                 
<Directory "/www">   

apache配置详解与实践
apache配置详解与实践

2.8 Directory

确定访问目录位置,标签配置。标签内是设置针对该目录的访问权限

<Directory "/var/www/html">
    Options Indexes FollowSymLinks          # 访问时的展示形式,Indexes索引展示
    AllowOverride None                                  # 设置指令是否可以在.htaccess使用
    Require all granted                                 # 允许所有人访问
</Directory>
  • Options 访问时展示形式

    ​ Options Indexes 当前目录下没有默认页面,就显示目录结构

    ​ Options FollowSymLinks 默认设置,允许访问符号链接

    ​ Options None 关闭
    一般情况下会把Indexes 关掉,不想让别人看到站点目录下有什么文件,只有在做下载站点的时候才会打开。默认是开的。
    apache配置详解与实践

  • AllowOverride .htaccess文件中允许的指令类型

    ​ AllowOverride All 全部指令

    ​ AllowOverride None 默认值,不允许

    ​ AllowOverride directive-type [directive-type] … 具体指令类型

  • Require 访问权限设置

    ​ Require all granted 无条件允许访问

    ​ Require all denied 无条件拒绝访问

    ​ Require method http-method **[**http-method] … 仅允许给定的HTTP方法访问

    ​ Require ip 10 172.20 192.168.2 指定ip地址范围的客户端可以访问
    实践

# 1. 去掉Indexes查看效果,注意改完配置后要重启http服务
<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# 2. 去掉FollowSymLinks
<Directory "/var/www/html">
    Options None
    AllowOverride None
    Require all granted
</Directory>

# 3. 使用Require
<Directory "/var/www/html">
    Options None
    AllowOverride None
    Require all denied                  # 无条件拒绝访问
</Directory>

<Directory "/var/www/html">
    Options None
    AllowOverride None
    Require method POST            # 仅允许post请求
</Directory>
上一篇:mongo does not contain shard key


下一篇:拜托,面试请不要再问我分布式搜索引擎的架构原理!