• 中间件-apache详解


    简介:

    apache http server(简称apache)是现在使用世界排名第一的web服务器,几乎可以应用在任何平台。它是一个开源的网页服务器,特点是简单,速度快,稳定性高,还可以作为代理服务器。

    特性:
    • 支持最新的HTTP/1.1通信协议
    • 配置文件简单,易操作,用户可以通过直接修改apache的配置文件信息来修改apache
    • 支持实时监控服务器状态和定制服务器日志
    • 支持基于IP和基于域名的虚拟主机
    • 支持多种方式的HTTP认证
    • 支持服务端包含指令(SSI)
    • 支持安全Socket层(SSL)
    • 支持用户会话过程的跟踪
    • 支持FastCGI
    • 通过第三方模块可以支持JavaServlets
    • 支持多进程
    安装

    linux下 yum install httpd

    1527770877932

    启动,停止命令

    service httpd start 启动

    service httpd stop 停止

    service httpd restart 重启

    1527770965538

    Apache主要目录和配置

    查看apache全部配置内容 cat httpd.conf|egrep -v".*#|$"|nl

    1527771654955

    1527771673362

    配置 解释
    ServerRoot "/etc/httpd" apache的安装目录
    Listen 80 监听端口
    user apache apache的用户默认
    Group apache apache的组默认
    ServerAdmin root@localhost.com 系统管理员邮箱
    ServerName localhost:80 服务器名称
    对根目录的限制
    AllowOverride none 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点不建议开启
    Require all denied 拒绝所有来源访问
    DocumentRoot “/var/www/html" apache的默认web站点目录路径
    apache 工作模式

    Apache一共有3中MPM(多进程处理模块),prefork,worker,event。

    Prefork MPM:在启动之初,会预派生fork一些子进程,然后等待请求进来,并且总会保持一些备用的子进程,同时派生出的每个子进程中都只有一个进程,在一个时间点内,只能处理一个请求。

    worker MPM:是使用了多进程+多线程的模式。它也预先fork了几个子进程(数量比较少),每个子进程能够生成一些服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。

    event MPM:event MPM中,会有一个专门的线程来管理这些 keep-alive 类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样,一个线程就能处理几个请求了,实现了异步非阻塞。

    apache监控

    在配置文件添加一段Location,配置完后重启apache,访问http://ip地址/server-status

    1527775539761

    将此段代码取消注释,并修改为如下所示

    ExtendedStatus On
    <Location /server-status>  
    SetHandler server-status  
    Order Deny,Allow    
    Allow from all
    </Location>
    

    保存退出,重启 service httpd restart

    1527775737595

    定时刷新 http://ip/server-status?refresh=N,每 N 秒自动刷新一次。

    采集数据 http://ip/server-status?auto

    apache监控指标

    1527776344694

    linux下监控apache

    1.用 ps 来看 httpd 进程数: ps aux|grep httpd|wc -l

    1527776806577

    2.用 netstat 来看当前的连接数:netstat -ant|grep ":80"|wc -l

    1527776907475

    3.实时检测httpd连接数:watch -n 1 -d “pgrep httpd|wc -l”

    1527777011324

    4.计算httpd进程占用内在的平均数:ps aux|grep -v grep|awk ‘/httpd/{sum+=$6}; END{print sum/n}’

    5.查看Apache的并发请求数及期TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    1527777211329

    1527777231011

  • 相关阅读:
    快速排序
    冒泡排序
    选择排序
    合并排序
    插入排序
    跟我一起阅读Java源代码之HashMap(三)
    跟我一起阅读Java源代码之HashMap(二)
    跟我一起阅读Java源代码之HashMap(一)
    Apache2.2 + tomcat7 服务器集群配置
    Spring+Hibernate实现动态SessionFactory切换(改进版)
  • 原文地址:https://www.cnblogs.com/tudouxifan/p/9146690.html
Copyright © 2020-2023  润新知