linux中apache功能特性,apache功能简单了解

实现http协议的程序有很多,比较有名的有:IIS目前市面上使用最多的,nginx使用的人数正在快速正加,apache古老的。apache虽然正在被…但是我们也要学习一下,它的市场份额还是有一些的,而且它的实现方式更加经典。

以上只是在http协议上实现静态数据传输,还有动态数据部分,动态数据就是可以变化的数据,这个变化就是根据浏览者的不同网页显示不同的数据。动态网页的实现语言有:php实现它的服务也叫php;asp.net实现它的是IIS,IIS不仅是静态服务器也是动态服务器;javascript实现它的就有很多了最著名的是tomcat,它也可以提供静态页面。

一http的静态数据实现apache

1工作流程

4983365469c10cf17ab7868f5bfdc25f.png

上图就是一个Apache处理一次请求的流程

2配置文件分布

Apache2.4的配置文件被分散多个文件里,主配置文件在/etc/httpd/conf目录下,模块的配置文件在/etc/httpd/conf.modules.d目录中,其它配置文件在/etc/httpd/conf.d目录下。

3主配置文件

主配置文件中一些重要的基本配置,Apache的特性设置我分开说ServerRoot "/etc/httpd" #日志的存放目录

Listen 80 #监听的端口

User apache #用户

Group apache #组

ErrorLog "logs/error_log" #错误日志日志

LogLevel warn #错误日志级别,其它的级别debug, info, notice, warn, error, crit,alert, emerg.

这两之间定义的是访问日志的个格式和级别

以下四行是错误从定性的定义,定义是根据响应状态码定义的,当然我们还可以根据状态码定义更多

#ErrorDocument 500 "The server made aboo boo."

#ErrorDocument 404 /missing.html

#ErrorDocument 404"/cgi-bin/missing_handler.pl"

#ErrorDocument 402http://www.example.com/subscription_info.html

EnableSendfile on #这个内容特别重要启用这个功能后,处理静态数据的流程变成下图,可以和之前的图片对比一下,这样可以减少数据拷贝次数。出现这种情况主要是因为,静态数据不需要加工,在磁盘读取后的内容就是我们想返回给用户的内容。

6d7ddbc148e6dcf60f230bdd48004724.png

4提供内容的路径和路径特性定义DocumentRoot "/var/www/html" #默认提供网页页面的路径

Options IndexesFollowSymLinks # Indexes显示目录下的文件;FollowSymLinks 显示链接文件的原文件内容;SymLinksifOwnerMatch 当链接文件和原文件为相同属主时显示文件内容,ExecCGI允许运行脚本

#AllowOverride controls what directives may be placed in files.

#It can be "", "None", or any combination of the keywords:

AllowOverride None #不允许路径重写,All允许重写,重写方法可以写在这当前文件中写也可以写在目标重写目录的.htaccess文件中

Require all granted #允许任何人访问,也可以定义使用哪些用户登录,基本上没有人使用。

5持久连接KeepAlive On

KeepAliveTimeout 30ms

MaxKeepAliveRequests 20

6模式

StartServers       8   #服务启动时启动的子进程数

MinSpareServers    5   #最少空闲子进程数

MaxSpareServers   20

ServerLimit      256   #同时启动的子进程数上限

MaxClients       256   #同时服务的客户端数上限(支持的并发数上限)

MaxRequestsPerChild  4000  #每个子进程在其生命周期内处理的请求数上限

StartServers         4  #服务启动时启动的子进程数

MaxClients         300

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25   #每个子进程可启动的线程数

MaxRequestsPerChild  0    #每个子进程可处理的请求数,0表示无限制

7压缩

这个内容定义在

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xmltext/javascript #还有其它的压缩选项

BrowserMatch"^Mozilla/2" no-gzip #不支持压缩的直接返回原文件

8 https实现

然后把这三个文件放在如下目录中,还有装mod_ssl的安装包[root@centos7 ~]# ls /etc/httpd/ssl/

httpd.crt httpd.csr  httpd.key

[root@centos7 ~]# vim/etc/httpd/conf.d/ssl.conf

#编辑如下两行

SSLCertificateFile /etc/httpd/ssl/httpd.crt

SSLCertificateKeyFile/etc/httpd/ssl/httpd.key

#添加如下五行

Options None

AllowOverride None

Require all granted

9 http协议重定向到https

Options Indexes FollowSymLinks

AllowOverride All #允许重写,这项是重写路径的关键

Require all granted

编辑/www/phpMyAdmin-4.4.14.1-all-languages/.htaccess文件

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

二http动态数据的实现php

1 Apache和php通信的方式

有三种,1Apache以模块的方式调用php;2Apache和php通过fastcgi模式通信;3通过cgi模式通信这种实现方式基本没人使用。

目前fastcgi正在取代模块方式,取代的原因是因为通过模块方式响应请求,每次完成一次php请求都要启动一次php进程,完成请求还要销毁进程,这个过程会浪费大量的时间。fastcgi模式则是把php直接运行在内存中,使用的时候直接向127.0.0.1:9000发送请求就能可以,减少了进程生成销毁的消耗。

php的配置文件一定要关闭display_errors

post_maxsize

2 xcache

xcache是加速php请求的工具,它对访问频度特别大的动态网页的加速特别明显。它的功能是把php请求的报文和处理后数据对于起来保存,下次再遇到同样的请求可以直接响应。学术一点就是XCache能够实现在内存中开辟一个缓存空间,将任何进程编译的opcode放在缓存空间里面,下次有进程需访问同一个文件就可以直接去缓存空间去取省去编译的步骤。

三四个网站模板

wordpress这是开源的php个人博客模板

phpwind论坛模板

discus论坛模板

phpmyadmin数据库mysql的网页管理工具

这四个网站模板实现可以帮助我们熟悉对php的了解。

总结

这一节基本上说的全是配置文件原理性的东西和Apache常用的功能,子所以不写具体步骤主要是网上类似博客特别多。这一节的重点,Apache的持久连接,这个需要根据生产环境具体选择需要摸索;Apache的压缩传输;https传输,很多网站都在慢慢实现全站https;重定向;Apache和php之间尽量使用fastcgi模式通信;xcache加速php请求。还有四个网页模板最好都实现一遍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值