Apache简介及配置

  • Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种web server,它以跨平台,高效和稳定而闻名,可以运行在几乎所有广泛使用的计算机平台上。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

  • apache是与nginx类似的web服务器

apache web服务搭建

  • 搭建环境Centos7.6

一、软件安装及配置

  • 在centos/redhat下apache软件名为httpd(ubuntu下为apache),所以需要安装httpd。如下:

    yum install httpd -y

  • 配置文件路径介绍

    # apache全局配置文件,存放全局配置参数

    /etc/httpd/conf/httpd.conf

    # apache配置文件存放目录,默认加载该目录下所有conf文件

    /etc/httpd/conf.d/*.conf

    # 服务脚本

    /usr/lib/systemd/system/httpd.service

    # 主程序文件

    /usr/sbin/httpd

    # 日志文件目录

    /var/log/httpd

    access_log: 访问日志

    error_log:错误日志

    # 默认站点路径

    /var/www/html

    # 模块文件

    /usr/lib64/httpd/modules

    /etc/httpd/modules 软链接

    # 配置文件格式

    directive value

    directive:不区分字符大小写

    value:为路径时,取决于文件系统

  • 主配置文件介绍

    ServerRoot  服务目录

    ServerAdmin 管理员邮箱

    User    运行服务的用户

    Group   运行服务的用户组

    ServerName  网站服务器的域名

    DocumentRoot    网站数据目录

    Listen  监听的IP地址与端口号

    DirectoryIndex  默认的索引页页面

    ErrorLog    错误日志文件

    CustomLog   访问日志文件

    Timeout 网页超时时间,默认为300秒.

    Include 需要加载的其他文件

  • 一般主配置文件只保存全局参数,不设置具体的项目

ServerRoot "/etc/httpd"

Include conf.modules.d/*.conf

User apache

Group apache

ServerAdmin [email protected]

ServerName www.example.com

# 默认加载目录下的index.html文件



    DirectoryIndex index.html  # 若是文件服务器,修改为DirectoryIndex None,否则存在index.html就无法正常显示目录。



# 过滤掉所有.ht*文件



    Require all denied



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

    

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

    

    CustomLog "logs/access_log" combined





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





    TypesConfig /etc/mime.types

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml



# 设置默认字符集

AddDefaultCharset UTF-8



    MIMEMagicFile conf/magic



EnableSendfile on

# URL忽略大小写

LoadModule speling_module modules/mod_speling.so

CheckSpelling on

# 跨域支持

Header add Access-Control-Allow-Origin "*"

Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"

Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

IncludeOptional conf.d/*.conf

  • 自定义配置可配置虚拟主机,也可以不配置

    # 配置存放路径

    /etc/httpd/conf.d/site10001.conf

    Listen 10001

    

        ServerAdmin [email protected]

        DocumentRoot  /mnt/http

        

            Options Indexes FollowSymLinks

            AllowOverride All

            Order allow,deny

            Allow from all

        

    


    # 这里配置了一台端口为10001的虚拟主机,共享/mnt/http目录,允许所有人访问

    # 或者这样配置

    Listen 10000

    DocumentRoot  /mnt/http

    

        Options Indexes FollowSymLinks

        AllowOverride All

        Order allow,deny

        Allow from all

    

忽略URL大小写配置

  • 需要在全局配置添加一下信息,并重启httpd服务,若不存在模块则需要额外安装
  1. 查看系统有无mod_speling.so模块,路径:/etc/httpd/modules,如果没有就从别处下载一个过来;

  2. 加载此模块


    vi /etc/httpd/conf/httpd.conf

    # 添加如下行:

    LoadModule speling_module modules/mod_speling.so

    CheckSpelling on

  1. 重启httpd服务。

支持跨域访问配置

  • 全局配置文件中增加跨域信息即可

    # vi /etc/httpd/conf/httpd.conf

    Header add Access-Control-Allow-Origin "*"

    Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"

    Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

  • ⚠️ 若只需要配置某个服务,则在具体的服务配置修改即可。

注意事项

  1. 全局配置需要配置ServerName,否则启动httpd失败

    vi /etc/httpd/conf/httpd.conf 

    # 修改

    ServerName  www.example.com

  1. 配置文件服务时,需关闭全局配置里的权限,否则全局无法访问

    # Deny access to the entirety of your server's filesystem. You must

    # explicitly permit access to web content directories in other

    #  blocks below.



    

        AllowOverride none

        # Require all denied  修改掉这行

        Require all granted

    

  1. 配置文件服务时必须删除掉welcome.conf文件,否则无法正常展示目录
    rm -rf /etc/httpd/conf.d/welcome.conf
  1. index.html文件处理
 

    DirectoryIndex index.html  # 若是文件服务器,修改为DirectoryIndex None,否则存在index.html就无法正常显示目录。


你可能感兴趣的:(Apache简介及配置)