httpd服务学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpd服务学习笔记相关的知识,希望对你有一定的参考价值。

1,进程和线程

进程类似于一个大工程项目,线程相当于大工程项目的每个小的任务单元,进程比较耗资源,线程消耗的资源要少得多,一个进程中可能有一个或者多个线程,根据工作需要的程度。

2. 一个进程中的多个线程之间由于是共享资源,所以可能会互相影响,可以采用复用的多进程I/O进程。

3. 建立请求,处理请求(单进程,多进程,复用进程,多进程复用)

4. tomcatapaceh下的一个软件,tomcat是一款开源的程序,通常用于动态页面的制作。

MPM(多路处理模块)工作模式

Pereork:一个进程响应一个用户的请求,但是它有一个主进程,这个主进程可以生成多个子进程,最多1024个,每个子进程响应一个用户的请求,相当于每一个子进程中只有一个线程

Worker:一个主进程生成若干子进程,子进程又可以分为多个线程

Eventcentos6中是测试版,不可用,7以后可用。

Httpd功能特性

虚拟主机:可以根据ipportFQDN的不同,创建不同的网站

CGI(通用网关接口):支持应用程序开发的接口,例如httpd本身只支持静态页面,但是要想支持动态页面,可以通过CGI使用php语言

正向代理:

技术分享 

在叉出可以设置一个缓存区,这样当1号用户访问过mage后,2号用户再访问mage就可以通过缓存区直接获得,而不用浪费资源,再去互联网上寻找了,同时也可以在代理服务器上设置acl等,指定策略等,来定义指定的用户访问指定的资源

反向代理:

技术分享

在某个时间段内,互联网内的某个请求很大的时候,可以在反向代理服务器(调度器)这里将所有此请求的请求都指定到一个专门的web服务器上,这个被指定的web服务器只会处理这个请求量很大的请求,但是一般都不用apache作为反向代理服务器,市面上一般比较常见的是nigixhaproxylvs

路径别名:将网站主页指向一个别的地方,例如www.magedy.com/bbs访问的是本机的bbs目录

用户认证机制:就是用户名,密码

支持第三方模块:扩展apache的功能

Httpd-2.2

主配置文件格式(/etc/httpd/conf/httpd.conf),三大块部分

第一部分:全局环境

第二部分:主服务配置

第三部分:虚拟主机

这三部分的顺序对功能的实现没有影响,分为三部分主要是为了看起来美观。

Httpd-2.2配置

1)修改监听的IPPort

可以实现监听多个端口

技术分享 

106只能通过9527访问,106只能通过80访问

技术分享 

https(是加密的http),端口号是443http(端口号是80),是不一样的

2)持久连接

技术分享 

链接后,不操作的情况下等多久自动断开连接

3)多路处理模块MPM

如:启用worker模块

 技术分享

 

技术分享

技术分享

 

Startservers 开启的服务个数

Minspareservers 最小的空闲进程,预先准备5个空闲进程,也就是当用到第四个的时候,就会立马增加新的5个进程,始终保证系统有5个空闲进程

Maxspareservers 最大的空闲进程,就是最多20个空闲的时候,就会被关掉

Serverlimit 最多256个,也就是并发连接数最多256个进程

Maxclients 最多多少个线程

Maxrequestsperchild 达到4000了,就自动关闭,开启新的进程

技术分享

服务个数是4,但是ps -aux查看的时候只能看到三个,这是因为,一个进程可以开25个线程,也就是说服务一开就会有100个线程,但是由于最大空闲数是75所以,会自动关掉一个进程,也就变成三个了

4)加载动态模块配置

主配置文件中,前面加#的模块不会被启用

技术分享 

5)主站点

主页面,可以更改,如

技术分享

如果两行同时启用,会使用下面的根文件目录

创建网站目录,就在html下创建子目录就行

技术分享

指定默认网站目录下访问的默认页面,也可以在访问的时候指定访问目录

技术分享

6)站点访问控制常见机制

 技术分享 

技术分享

/app/site1下的网页不允许使用软连接访问,默认支持软连接,不支持索引

Options none 全都不支持

Options  all 全都支持

主站点的子目录下想实现个性化的访问控制,可以在下面继续加

技术分享 

7)orderdenyallow

技术分享

Only的时候,只看only

Bothnone的时候,看denyallow哪个在后面

8)针对url控制访问

技术分享

Site1下的文件,confsh结尾的都文件拒绝访问

技术分享

主站点下的admin目录,只允许允许的主机访问,其他的都拒绝

10)日志的设定

错误日志:默认的是warn,也就是马上就要错了就记录日志

技术分享

访问日志:

日志格式

技术分享

技术分享

默认的日志目录,和格式,即combined  ,%是间隔

%h 远程主机地址

%l  远程登陆的用户的用户名

%u 远程用户身份验证

%t 用户发起请求的时间,而且默认标准是英语国家的时间

%r 第一行的请求

%>s  最后的响应码,每一个响应都有一个对应的一个号码

%b 相应报文的文件大小

Referer 从哪个地址跳转到这里的

可以自己制定日志格式,然后在/conf.d/name.conf文件中使用自己定义的日志格式,如基于FQDN的虚拟主机的定义的.conf文件中,如下,testlog就是自己定义的日志格式

技术分享

11)设定默认字符集,就是针对不同语言设计的不同的字符集,有些字符集不支持中文,有些全球通用,如utf-8

修改默认的字符集:

技术分享

12)定义路径别名

技术分享

这样访问/bbs目录的时候,会变成访问/app/bbsdir下的文件,而且bbs这个目录不管存在不存在,都不影响,它是个虚拟目录

13)基于用户的访问控制

Basic基本验证

针对目录以及用户的访问控制,require 改为valid-user

用户以及用户的密码文件可通过htpasswd  -c/s/m 添加 c只在文件不存在时使用,sm代表不同的加密机制,shamd5

require-vaild,即为允许所有用户访问

技术分享

同时可以i将控制访问的内容放到/secret/下的一个.htaccess文件下,这样这个文件内的内容就会对secret的权限生效,另外,需要在/conf.d/test.conf文件中将allowoverride后加上 authconfig,即允许用验证的权限通过 .htaaccess文件覆盖。

13)基于组账号进行认证

创建.htgroups文件,里面定义组成员的信息,如下

技术分享

然后修改.htaaccess文件,类似用户访问控制的格式

技术分享

14)Status页面,状态页面

技术分享

技术分享

这里去掉#并修改配置后,可以访问本机的状态

虚拟主机(一个主机多个站点,一个站点代表一个虚拟主机)

通常对于访问量不是很大的访问,一个主机划分多个虚拟主机进行访问。

1)制作三个虚拟主机,建立三个站点的工作目录

 技术分享

2)添加三个ip地址

技术分享

3)三种实现方法

1. 为每个虚拟主机准备一个ip地址(基于ip

 技术分享

访问这些虚拟地址

 技术分享

2. 为每个虚拟主机使用至少一个的端口(基于port

技术分享

通关端口访问

技术分享

3. 为每个虚拟主机至少准备一个FQDN(基于FQDN

NamevirtualHost *80 是主配置文件里的内容,如果不修改主配置文件,也可以写在这里,表示启用基于FQDN的虚拟主机访问

技术分享 

另外,虚拟主机配置的位置决定了谁先被访问,如图website3在第一个,那么就会放任website3,如下

技术分享 

Cookie

cookie:记录用户的各种数据,用户数量一旦太多,对服务器压力就很大,这种cookie就不太合适了,而且用户换了登陆主机后,无法加载cookie中的用户的数据

cookie:只会记录每个用户的一个uid,并在后台通过用户的uid为其访问其对应的数据,而且当用户换了主机登陆后,依然可以加载出来用户的数据

常见状态码

使用火狐浏览器可以方便的查看响应码

技术分享 

CURL命令(常用)

-A 设置用户代理发送给服务器

技术分享 

-e 选择来源的网址

技术分享 

日志如下

技术分享 -H 自定义首部信息

 技术分享

日志如下

 技术分享

-i 额外显示页面内容

-I 只显示响应报文的首部信息

-Durlheader信息存放在在指定文件中

技术分享 

-o

下载服务器中的文件,可以指定下载完后的文件名

-O

下载服务器中的文件,文件名默认和服务器上的一样

下载的时候进行限速

技术分享

-L

进行真的跳转,不加的话,只是显示要跳转的内容,但是不会真的跳转

技术分享 

Mod_deflate模块实现

定义在/etc/httpd/conf.d/name.conf文件中,作用是通过压缩传输的页面,节约宽带,减少额外消耗的cpu,但是有些老旧的浏览器可能不支持,而且只能压缩适用于压缩的数据

技术分享

Deflatecompressionlevel 默认是9,不写这一行也是9,这里写的1,即11压缩,也就是不压缩

AddOutputFilterByType DEFLATE text/* 可以选择需要压缩的数据类型


本文出自 “11083860” 博客,请务必保留此出处http://11093860.blog.51cto.com/11083860/1974897

以上是关于httpd服务学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

linux 网页服务器apache学习笔记

2018-2-26 Linux学习笔记

Nagios学习笔记二:Nagios概述

Mysql DBA 高级运维学习笔记-Heartbeat实现web服务的高可用案例及维护要点

NodeJS学习笔记

2018-3-1 Linux学习笔记[疑难]