hq8501 发表于 2018-11-22 10:29:24

Apache(HTTP)服务相关知识总结(一)

Apache简介:
    Apache是一款著名的web服务器的软件。它是实现HTTP协议 的一个工具,而httpd则是Apache超文本传输协议服务器的主程序。
下面我来说说Apache的配置文件(非常重要)
1, 配置文件总体分为3个部分:
      Section1: Global Environment

            功能: 控制Apache服务器进程的全局操作的

      Section2:'Main' server configuration

            功能: 提供主服务器(默认为主服务器)的配置

      Section3:Virtual Hosts

            功能: 提供虚拟服务器配置的

    注意:默认状态下,主服务器启用,主服务器和虚拟服务器不能同时启用,需要启用虚拟服务器则先关闭主服务器。



2,Section1段的主要内容:

    ServerTokensOS

    功能:显示Apache的版本和操作系统的名称

    serverRoot    "/etc/httpd"

    功能:设置服务器的根目录为/etc/httpd

    PidFile    run/httpd.pid (注意:此处为相对路径,绝对路径前面要加/etc/httpd)

    功能:指定Apache服务器进程的进程号文件存放的位置为:/etc/httpd/run/httpd.pid

    Timeout    300

    功能:    指定连接超时间隔为300s

    Keeplive Off

    功能:    设置是否允许持久连接,Off为不允许持久连接,且默认一次请求只能传输一个文件。

    MaxKeepAliveRequest   100

    功能:    设置一次持久连接最多接受的请求数为100,0则表示无限制

    KeepAliveTimeout    15

    功能:    表示 一次持久连接的超时时间为15s

    (服务器池)


  
  StartServers       8   //服务器开启时,启动的服务器子进程为8个
  MinSpareServers    5    //最小空闲服务器子进程为5个
  MaxSpareServers   20    //最大空闲服务器子进程为20个
  ServerLimit      256    //允许服务器进程数最多为256个
  MaxClients       256    //允许同时相应的客户端数为256个
  MaxRequestsPerChild4000//允许一个服务器子进程最多相应的服务请求数为4000个
  
  

  Listen 80    功能: 设置监听端口为80端口,且可以设置如下:IP:80这样的形式,指明那个IP的80端口
  

  3,Section2段的主要内容如下:

   User Apache

        Group AApche

  功能:    提供Apache运行时的身份及所属属组分别为用户:Apache基本组:Apache

  ServerAdminroot@localhost
  功能:    设置Apache的服务器管理员的邮箱

  ServerName {IP|域名}:80    // 如果此处为域名则需要DNS服务器的支持

  功能:    设置Apache默认站点的名称和端口号

  UseCanonicalName Off

  功能:    设置是否使用规范名称。当值为Off时,表示使用客户端提供的主机名和端口号

  当值为On时,表示使用ServerName 设置的值

  DocumentRoot "/var/www/html"

  功能:    设置默认web站点的文档根目录,网站上的页面文件都是存放在此根目录下的

  
              Options FollowSymLinks
              AllowOverride None
        
  功能:    根目录的访问控制,表示要对文件系统的目录进行限制
  

  
  Options Indexes FollowSymLinks   //允许跟随符号连接,其中Indexes的含义是,如果要访问的页面文档不存在,则显示文档根目录下的文件目录清单
  AllowOverride None   //不允许覆盖当前配置,也就是不处理.htaccess文件
   Order allow,deny    //访问控制的顺序,先allow后deny
  Allow from all    // 允许所有主机访问
  
  功能:对文档根目录的访问控制      

  

  
              UserDir disabled
           
  功能:默认禁用个人主页,而UserDir disable则是开放个人主页面

  AccessFileName .htaccess

  功能:    指明每个目录中访问控制文件的名称为.htaccess

  HostnameLookups Off

  功能:    设置在日志中记录的是客户的名称还是IP地址,Off则记录IP地址,On则记录名称

   ErrorLog    Logs/error_log

  功能:    指定错误日志的存放位置

  LogLevel    warn

  功能:    指定日志记录的基本为警告

  CustomLog    logs/access_log combined

  功能:    指定访问日志的位置及类型

  日志的格式
  %h: 客户端地址
  %l: 远程登录名,通常为-
  %u: 认证时输入用户名,没有认证时为-
  %t: 服务器收到 用户请求时的时间
  %r:请求报名的起始行
  %>s: 响应状态码
  %b: 响应报文的长度,单位是字节
  %{HEADER_NAME}i: 记录指定首部对应的值
  

  ServerSignature    On

  功能:    在服务器产生的页面中增加一行,显示内容为;服务器的版本和虚拟主机的名称

  Alias /icons/ "/var/www/icons/"
  功能:    定义/icons/为/var/www/icons的别名,

  ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
  功能:    定义脚本别名,即将/cgi-bin/ 是 /var/www/cgi-bin/的别名

  IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
  功能:    设置自动生成目录列表的显示方式,

  FancyIndexing// 对每种类型的文件前加一个小图标加以区别
  VersionSort    // 对同一个软件的多个版本进行排序
  NameWidth=*    // 文件名字段自动适应当前目录下的最长文件名
  

   AddDefaultCharset UTF-8
  功能:字符集的设置,默认设置为UTF-8

  

  
  #    SetHandler server-status
  #    Order deny,allow
  #    Deny from all
  #    Allow from .example.com
  #
  功能:    设置Apache可以报告详细的服务器状态信息。

  

  Section3:主要说虚拟机主机的配置:

  主要有3种,基于IP的虚拟主机,基于端口的虚拟主机,基于名字的虚拟主机。

  虚拟主机不能和主服务器同时开启,所有要注释掉虚拟主机
  注释主服务器的站点根路径指定:DocumentRoot
  

   定义虚拟主机
  NameVirtualHost IP:PORT
  
  ServerName      服务名称
  DocumentRoot   根目录
  ServerAlias       服务别名
  ErrorLog      错误日志
  CustomLog      访问日志
  
  大体上,Apache的配置文件就以上这么多啦,当然还有一些没有介绍,相比而言写出来的重要些而已。
  

  基于端口号的虚拟主机
  首先,要先把默认的服务器的DocumentRoot注释掉,且要多指定一个端口例如:8080端口

  然后就可以编辑虚拟主机的内容啦:(内容有点简单,日志文件没写而已)

  然后测试文件语法 httpd -t或者 service httpd configtest
  然后service httpd restart (修改端口号要重启服务的)
  测试如下:

  


  

  再来看看基于IP的虚拟主机的实现:配置文件如下:

  我们只需把端口都改为80端口,而IP地址则不能一样

  


  最后我们常用的是基于主机名称的实现,要想基于主机名,首先我们要能解析出主机的IP地址,要能解析主机名的IP地址,就需要DNS服务,所以配置好DNS服务器是前提,在这里,我们只需在已经配置好的DNS服务器的解析库文件中,/etc/hosts 文件中添加也行,
  配置文件:


  测试语法
  重启服务


  

  以上3种虚拟主机的建立就这样啦,这里顺便说下,我用的虚拟机,做基于主机名称虚拟主机的时候,我改的不是虚拟机的/etc/hosts,我改的是我的window本机的C盘/windows/system32/drivers/etc/hosts文件,在这个文件内添加如下内容即可:
  192.168.0.102www1.stu14.com

  192.168.0.102www2,stu14.com
  

  以上就是HTTP服务的配置文件的详解以及如何去创建虚拟主机。
  




页: [1]
查看完整版本: Apache(HTTP)服务相关知识总结(一)