设为首页 收藏本站
查看: 492|回复: 0

[经验分享] apache httpd的常见使用方法(1)

[复制链接]
累计签到:29 天
连续签到:1 天
发表于 2018-11-18 08:24:06 | 显示全部楼层 |阅读模式
  http是一种网络传输协议,即超文本传输协议
  之所以称之为超文本是因为此协议既可以传输普通的文本信息还可以传输图片、音频、视频等非文本信息;

  使用TCP协议的80端口建立连接,即可靠的无状态连接;

  一般采用HTML、CSS、JS等语言编写代码;

  版本更迭  0.9---1.0---1.1---2.0,1.1是目前主流

  URI  统一资源标识符
  URL 统一资源定位符
  流量统计
  IP    独立ip
  PV    页面访问,即页面刷新量
  UV    独立访客,通过cookies计算访客终端的数量
  http的工作机制

  http request

  http response
  web资源  一个web页面并不是单个资源而是一组资源的集合

  静态资源  访问速度快,资源消耗少

  文件后缀:.jpg, .html, .txt, .js, .css, .mp3, .avi
  动态资源 访问速度慢,资源消耗多,所以常常结合缓存来解决

  文件后缀:.asp, .php, .jsp
  

  下面来阐述一次完整的http请求处理过程
  1、建立连接:客户端发出http request与服务端建立tcp连接,或成功或失败

  2、接收请求:服务端接收客户端请求方法中对某一资源的请求

  3、处理请求:服务器对请求报文进行解析,根据请求方法、资源、首部等信息进行处理

  常见的http请求方法(method):GET、POST、HEAD、PUT、PUSH、OPTIONS、DELETE、TRACE

  4、访问资源:服务端向web资源服务器请求静态资源或者动态程序运行后生成的资源

  5、构建响应报文:web资源服务器响应请求,执行响应动作,并返回相应报文。响应报文中包含状态码和响应主体;

  6、发送响应报文:也是在tcp连接的基础上,服务端会告诉客户端数据是什么格式,用Content-Type表示

  常见的Content-Type值  text/xml、image/jpeg、audio/mp3
  7、记录日志

  本文讲的http是由apache提供的httpd服务器程序

  httpd的特点
  高度模块化:core + modules

  DSO:支持动态加载/卸载

  MPM:多路处理模块

  MPM主要定义了httpd程序运行时进程的工作模式
  prefork

  一个主进程生成n个work子进程,每个子进程处理一个请求,,并发响应是n,相当稳定

  worker

  一个主进程生成m个子进程,每个子进程生成n个线程,每个线程处理一个请求,并发响应是m*n

  event

  与worker一样,但会单独分出一些线程来管理处理请求的线程,即将请求传递给服务线程,处理结束又允许释放。
  http-2.2上此版本处于测试阶段,http-2.4此版本已是稳定版
  下述说明均在CentOS6.9上的http-2.2版本常见配置
  编辑httpd的主配置文件/etc/httpd/conf/httpd.conf
  建议修改配置文件前先备份,方便回退,养成这种习惯
  1、服务版本信息
  ServerTokens Prod  隐藏apache版本
  ServerTokens OS  默认设置,显示apache版本,安全起见建议隐藏
  httpd -t  用于httpd配置文件的语法检查
  我们修改完httpd的配置文件后,可以使用此命令检查语法是否有问题
  2、修改监听的IP和端口
  Listen 80  默认设置,监听本机所有ip的80端口,可根据自己的需要修改
  仅企业内部使用时可以修改为非标准端口,而且可以同时监听多个端口
  3、持久连接
  每个请求获取完资源后不会断开连接,而是等待下一个请求的完成。默认是关闭持久连接功能的

  KeepAlive Off   默认是关闭持久连接的
  KeepAliveTimeout 15  一个连接中等待同一客户端下次请求的超时时间,单位是秒
  MaxKeepAliveRequests 100  一次持久连接能接受的最大请求数
  根据业务需求决定是否启用持久连接,建议游戏业务开启持久连接
  4、MIME 多用途互联网邮件扩展
  服务器在响应客户端时会扫描每个资源内容,根据其魔数字与已知模式匹配来确定响应资源文件的类型

  比如,服务端响应资源a.jpg是一张图片,如果将图片文件a.jpg修改为a,则依据MIME扫描资源内容得出魔数字依然能够判断出资源类型是图片
  所以说MIME是依据资源内容而不是后缀来判断文件类型
  5、MPM 多路处理模块
  httpd -l  查看当前使用的模块,默认是prefork模式
  /etc/sysconfig/httpd   此文件可以修改MPM的工作模式,http-2.2版本保持默认即可
  下面对主配置文件中的prefork模式说明

  
  StartServers       8            开启http服务时启动的服务进程数
  MinSpareServers    5        空闲状态下存在的最少进程数
  MaxSpareServers   20        空闲状态下存在的最多进程数
  ServerLimit      256            最多进程数
  MaxClients       256            最大并发数
  MaxRequestsPerChild  4000    每个子进程能处理的最大的请求数,超过此值子进程会被父进程终止并释放内存空间
  
  ab -c 100 -n 1000 http://192,168.100.5/index.html    httpd自带的压力测试工具
  6、DSO 动态共享模块
  通过加载特定模块完成特定功能,如下
  LoadModule auth_basic_module modules/mod_auth_basic.so  加载认证模块,即http可以基于此模块实现认证
  7、文档页面路径

  DocumentRoot "/var/www/html"   默认的网站主页路径,即根目录
  当访问http://www.a.com/test/index.html时,服务端的路径是/var/www/html/test/index.html
  8、定义站点主页面
  DirectoryIndex index.html index.html.var  默认主页,如果找不到此文件就会报错
  9、站点访问控制常见机制
  可基于客户端来源地址和账号这两种机制实现访问控制
  开可以基于目录、文件、通配模式或者URL来实现访问控制,后续介绍
  10、中基于源地址的访问控制
  (1)options  其后可以用跟多个列表选项
  indexes  指定URL路径下不存在文件资源时则返回资源列表,不建议使用

  followsymlinks  允许访问软连接指向的源文件,默认是启用的
  none  表示全部拒绝
  all  表示全部允许
  示例如下
  
  Options -indexes -followsymlinks
  
  + 表示启用列表选项
  - 表示禁用列表选项
  (2)allowoverride
  哪些指令可以放在 .htaccess 文件中,覆盖之前的配置指令,如下例

  cat /var/www/html/aaa/.htaccess
  Options indexes
  #在指定目录下生成.htaccess文件,并设置好options选项
  cat /etc/httpd/conf.d/test.conf
  
  allowoverride all    允许.htaccess文件覆盖此处的所有指令,相当于options indexes
  
  注意
  allowoverride none  则.htaccess文件无效
  allowoverride  indexes  只覆盖indexes指令,其他指令不覆盖,即此处的indexes将被.htaccess文件中定义的指令替代
  (3)order和allow、deny
  order指定allow和deny的优先级,靠后的优先级高,即order allow,deny则deny优先级高,order deny,allow则allow优先级高

  order指定优先级顺序,然后使用allow from或者deny from来匹配具体地址,如果allow与deny有重合,则按照order定义的优先级取舍
  cat test.conf
  
  
  order allow,deny             deny优先级高于allow
  deny from 192.168.100.100
  allow from 192.168         allow定义的地址与deny定义的地址有重合,以order定义的优先级顺序做取舍
  
  
  11、日志设定

  ErrorLog logs/error_log    错误日志
  CustomLog logs/access_log combined    访问日志,combined定义日志格式
  两种类型的日志存放位置使用相对路径,即相对ServerRoot "/etc/httpd"
  日志格式定义如下
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  %h 远程主机,%l 远程用户,%u 验证远程用户,%t服务器接收请求的时间,%r请求报文的首行,包含了请求方法,%>s状态响应码

  %b响应报文大小,%{Referer}i 请求报文首部referer的值,请求报文中user-agent的值




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636398-1-1.html 上篇帖子: Apache Oozie Installation 下篇帖子: linux的MariaDB、Apache(httpd)安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表