linux服务基础(二)之httpd基础配置

一、安装httpd服务

CentOS6 默认安装httpd2.2版本

CentOS7 默认安装httpd2.4版本

# yum install httpd

二、安装后相关文件说明

  配置文件: 

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

  服务脚本:

 /etc/rc.d/init.d/httpd
 脚本的配置文件:/etc/sysconfig/httpd  

  主程序文件:   

  /usr/sbin/httpd
  /usr/sbin/httpd.event
  /usr/sbin/httpd.worker

  日志文件目录:  

  /var/log/httpd
      access_log: 访问日志
      error_log:错误日志

  站点文档目录:  

  /var/www/html

  模块文件路径:

  /usr/lib64/httpd/modules

三、常用配置

打开主配置文件:

vim /etc/httpd/conf/httpd.conf

  1. 修改监听的IP和Port 

  Listen [IP:]PORT
    省略ip表示监听所有ip,listen可重复出现多次
实例:
    # Listen 80
    # Listen 192.168.1.103:8080

  2. 持久连接

  Persistent Connection: 每个连接获取资源完成后不会断开连接,而是继续等待其他的请求完成

    如何断开?

      数量限制: 默认100

      时间限制: 可配置

    缺陷: 对并发访问量较大的服务器,持久连接功能会使有些连接得不到响应

    折中解决办法: 使用较短的持久连接时间

      Note: httpd-2.4版本支持毫秒级持久时间

    开启或关闭持久连接:

      KeepAlive On|Off  //打开或关闭持久连接
          MaxKeepAliveRequests #  //最大持久连接数
          KeepAliveTimeout #  //持久连接超时时长
实例:
       # telnet 102.168.1.103 80
       # GET / HTTP/1.1
       # Host: 192.168.1.103

  3. MPM

  Multipath Process Module: 多道处理模块

  有三种模型: 

    prefork: 多进程模型,每个进程响应一个请求

      一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求,即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不超过1024个

    worker: 多线程模型(多进程生成,一个进程生成多个线程),每个线程响应一个请求

    event: 事件驱动模型,一个线程响应多个请求

查看静态编译的模块
# httpd -l
查看静态编译及动态装载的模块
# httpd -M
更换使用的httpd程序
  # vim /etc/sysconfig/httpd
  # HTTPD=/usr/sbin/httpd.worker
重启服务生效

prefork的配置:

      <IfModule prefork.c>
                StartServers       8        # 服务启动时启动多少个进程
                MinSpareServers    5        # 最少空闲进程数
                MaxSpareServers   20        # 最大空闲进程数
                ServerLimit      256        # 为maxclients所准备的在其服务器生命周期内所允许的最大值,进程数量最大值
                MaxClients       256        # 服务器端最多允许启动多少个进程,也即是服务器端最多允许多少个客户端同时请求资源
                MaxRequestsPerChild  4000    # 一个进程最多响应多少次的请求                                                
           </IfModule>

worker的配置:

      <IfModule worker.c>
                StartServers         4    # 服务器启动时启动多少个进程
                MaxClients         300    # 服务器端启动的最大线程数
                MinSpareThreads     25    # 最少空闲线程数
                MaxSpareThreads     75    # 最大空闲线程数
                ThreadsPerChild     25    # 每个进程所能够启动的线程数
                MaxRequestsPerChild  0    # 每个线程所能够响应的最大请求数量,0表示不受限制
          </IfModule>

  4. DSO 动态共享对象,支持模块动态装卸载   

    LoadModule <mod_name> <mod_path>
        /etc/httpd/modules --> /usr/lib64/httpd/modules

  5. 定义'Main' server的文档页面路径

    DocumentRoot指向的路径为URL路径的起始位置   

      DocumentRoot "/var/www/html"
实例: 主配置文件中修改:
    # DocumentRoot "/www/htdocs"
   # Directory "/www/htdocs">

  6. 站点访问控制

  可基于两种类型的路径指明对那些资源进行访问控制

    文件系统路径:

      <Directory ""></Directory> 对目录中所有文件控制

      <File ""></File> 对单个文件控制

      <FileMatch ""></FileMatch> 对模式匹配的文件进行控制,最好不用

    URL路径:

      <Location ""></Location>

   访问控制机制:

      基于来源地址

      基于账号

  7. Directory中基于来源地址实现访问控制

    (1)Options

      所有可用特性:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

        Indexes: 索引

          实例:
            默认是由indexes配置,如果在documentroot目录下没有index.html或者index.html.var
            访问时会列出文件列表

            不启用Indexes: -Indexes

        FollowSymlinks: 允许跟踪符号链接文件
          实例:
            ln -sv /etc/issue /www/htdocs/issue.html
            浏览器访问: 192.168.1.103/issue.html可以访问
            如果要去掉FollowSymlinks: 前面加个-号

      options里面什么选项都不要可以设置为none 

    (2)基于来源地址的访问控制机制

      Order: 检查次序

        Order allow,deny: 相当于建立白名单

        Order deny,allow: 相当于建立黑名单

      Allow from

      Deny from

      来源地址:

        IP

        NetAddr        

          192.168.1
          192.168.1.0
          192.168.1.0/24
          192.168.1.0/255.255.255.0
实例:
   Order allow,deny
    Deny from 192.168.1.110
    Allow from 192.168.1

  测试: elinks -dump http://192.168.1.102  //当前主机访问自己是可以的

  8. 定义默认主页面

    DirectoryIndex index.html index.html.var

  9. 日志设定

  

 

猜你喜欢

转载自www.cnblogs.com/ckh2014/p/10780608.html