首页 > 代码库 > Apache服务器之一理论讲解(Apache)
Apache服务器之一理论讲解(Apache)
前期做这个实验的时候:
httpd:SELINUX(事先让其处于DISABLED状态)
getenforce
setenforce 0
编辑/etc/sysconfig/selinux
selinux的3种选择:disabled permissive enforcing 3种选择;
Disabled就不用说了,permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来。
在我们开发策略的时候非常的有用。
httpd在redhat系统上是受selinux控制的,一定要将selinux处于permissive,disabled状态。
httpd.x86_64:服务包
httpd-devel.i386:这个是开发包,不做开发就用不到它;
httpd-manual.x86_64:本地的手册页;
只需要安装httpd这个包即可。
httpd:SELINUX
/usr/sbin/httpd(MPM: prefork) 默认是prefork的;
httpd进程启动起来之后,有好几个进程。下面说下出现这几个进程出现的原因:
httpd: root, root (master process) 主导进程
在linux系统上,小于1024的端口,只有管理员有权限启动它。因此第一个进程是管理员启动的。它不响应用户请求,它用于创建空闲进程,或者销毁进程。
httpd: apche, apache (worker process)工作进程
同时它也有自己的服务脚本:
/etc/rc.d/init.d/httpd
Port: (80/tcp), (https: 443/tcp)
编译的话,任务软件的安装目录在/etc/httpd这个目录里面;
/etc/httpd: 工作根目录,相当于windows下程序安装目录
/etc/httpd/conf: 配置文件目录
主配置文件:httpd.conf
主配置文件的组成分还包含有如下部分,使用文件引用将其引用进来即可:
/etc/httpd/conf.d/*.conf
/etc/httpd/modules: #模块目录路径;
/etc/httpd/logs --> /var/log/httpd: #日志文件目录
日志文件有两类:访问日志access_log,错误日志:err_log
/var/www/ #web服务器响应用户请求的页面路径;
html #apache提供静态访问时候的路径;
cgi-bin #apache提供动态访问时候的路径;
cgi: Common Gateway Interface(通用网关接口)可以理解为协议
作用:(让web服务器能够跟额外的应用程序通信的一种机制,能够让web服务器在必要的时候启动一个应用程序,
来处理动态的请求)
Client --> httpd (index.cgi) --> Spawn(生成,产生)Process (index.cgi) --> httpd --> Client
到底什么样的程序语言能够开发出动态的cgi:perl, python(默认情况下开发动态网页非常实用),
java,(Servlet, JSP), php(开发动态站点用的语言)。
每一种程序开发语言都有自己的适应场景;
为了尽可能降低web服务器的压力,web服务器无论你是否使用动态调用,让我们的动态服务器进程也实现出现,
动态进程也像web服务器一样也实现声明好。也有一个自己的服务名字个服务的名字就叫fastcgi。这个时候这些动态进程的创建跟回收,
由自己的服务器完成,这叫做fastcgi。这也是cgi的一种。这个时候我们就可以将我们的服务器
分离开,静态内容一个服务器。如果是动态请求,通过TCP/IP协议,请求我们的动态服务器即可。这个时候静态内容跟动态内容就分开了。这就是为什么处理动态内容的
服务器被称为应用程序服务器的原因。这样静态服务器跟动态服务器分离了。
程序是由指令和数据组成的,指令是cpu上要运行的命令。程序最主要的是帮我们处理数据的。如果数据量非常大的话,怎么去管理?早期是放在文档中的,管理起来非常忙。
后期引入了数据管理机制,叫做数据库服务器。这种程序能够专门帮我管理数据,而且能够通过某种接口,将这种数据服务提供给额外的其他应用程序,或者是用户。这种接口
我们称为数据库的API。应用程序服务器越来越忙了之后,我们不能主观的将应用程序服务器分成两个,因为用户访问的数据没法同步。这时候就需要再次进行分层。如果要访问
动态数据,首先访问web服务器,web服务器再访问应用程序服务器,应用程序服务器,应用程序服务器访问数据库服务器,应用程序服务器,完成数据的转换,
将其转换为html文档,再返回给web服务器,web服务器再将其返回给客户。
前端我使用apache服务器,中间我使用php服务器,后端我使用mysql服务器。这就叫做lamp。
所以之后的所有内容全是围绕web服务器展开的。那我们后期就可以使用hadoop集群并行处理这些信息。这些服务器如何协同,如何链接。
fastcgi:外部服务器与cgi通信的机制,我们起名叫fastcgi。有了它之后,动态进程就会有专门的进程生成。
程序:指令和数据
数据,数据库服务
下面先针对httpd的静态页面进行配置,有哪些方式,如何进行调整等。
以后日志主线:如何搭建单个httpd服务器,如何搭建php,如何搭建mysql。如何将httpd与php结合起来。如何将mysql域httpd,php,关联起来。如何在一台服务器上搭建
lamp,如何将其拆开如何在三台服务器上搭建,lamp。如何再将其进行扩展,扩展成lamp的集群形式。
Apache服务器之一理论讲解(Apache)