分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Apache网站服务

发布时间:2023-09-06 01:14责任编辑:沈小雨关键词:暂无标签

Apache 下载地址: http://mirror.bit.edu.cn/apache/httpd/
相关软件下载地址:http://mirror.bjtu.edu.cn/apache/apr/apr
?????????????????????????????         http://mirror.bjtu.edu.cn/apache/apr/apr-util
=============Apache 简介: 进程技术,高资源消耗,但是稳定;

     

                        

          MPM (multi process moudles): 多处理模块;
     Apache工作模式:
???????    进程池(prefork):适合动态页面,总是提前准备好进程等待访问者,一个进程对应一个web访问请求;
???????    线程池(worker,event):适合静态页面,比如先开启5个进程,每个进程里开启100线程,一个线程接待一个web访问请求;    

               

                httpd------->prefork ---->默认
?????????     httpd.worker------->worker
?????????     httpd.event-------->event ???
?????    如果使用简化安装的Apache,如何改变它的MPM工作模式?

                

  =================LAMP平台概述:

           

   =========Apache中的进程与线程:  

              

1》安装Apache软件:
?????    rpm ?和 yum 安装:
????  1> yum ?install ??httpd
?????????    service ??httpd ?restart       

              

              启动服务的脚本------》运行/usr/sbin/httpd----》调用/etc/httpd/conf/ httpd.conf; 

                

              真正提供httpd服务的程序的名字;

            2>源码安装:
???????      ==下载软件包:
???????        http://mirror.bit.edu.cn/apache/httpd/
???????        http://mirror.bjtu.edu.cn/apache/apr/apr
???????        http://mirror.bjtu.edu.cn/apache/apr/apr-util
???????
???????      ==安装软件:
??????        yum ?-y install ?gcc ?autoconf ?automake ?make ?pcre ?pcre-devel ?openssl ???openssl-devel

              apr:
????????????      ./configure
????????????      make ?&& ?make install
??????    apr-util:
???????????      ./configure ?--with-apr=/usr/local/apr
???????????      make ?&& ?make install
??????    httpd:
???????????    ./configure ?--prefix=/usr/local/apache ?--enable-so ?--enable-ssl ?--enable-rewrite ?--with-mpm=worker ?--with-suexec-bin ?--with-apr=/usr/local/apr
???????????    make ?&& make install
?????    可以通过./configure ??--help 命令来查看脚本支持的所有选项:
???????      --prefix ????????????????????指定Apache httpd程序的安装主目录
???????      --enable-so ??????????????开启模块化功能,支持DSO(动态共享对象) ???????????
???????      --enable-ssl ?????????????支持SSL加密
???????      --enable-rewrite ???????支持地址重写
???????      --with-mpm ??????????????设置Apache 工作模式
???????      --with-suexec-bin ??????支持SUID,SGID
???????      --with-apr ??????????????????指定apr程序绝对路径 

2》修改配置文件:
????  主配置文件:/etc/httpd/conf/httpd.conf:
?????  简单配置:

         

        出现上述提示说明没有标准的域名,需要指定:
???   ServerName:www.chw.com:80 ?-----276行》打开配置,去掉注释,然后修改;       

       配置文件详情解析:Apache服务的主配置文件主要由指令以及容器组成,容器使用<容器名称>开始,以</容器名称>结尾,容器的指令一般仅在容器内有效:
???    1>SeverRoot指令:
????????      设置软件的安装主目录,如果采用源码安装,则默认路径为/usr/local/apache2;
???    2>Listen指令:
????????       设置服务器监听的IP以及端口号,默认监听服务器本机所有的IP地址的80端口,语法格式为:Listen[IP地址:]端口[协议],其中IP地址与协议为可选项,                    默认监听所有的IP ,使用TCP协议,一个配置文件可以多次使用Listen指令来开启多个端口;
???    3>LoadModule指令:
???????      如果希望Apache动态加载模块,需要在编译Apache时通过enable-so将mod_so以静态方式编译到Apache核心模块中,此指令的作用就是加载模块,语法                 格式为:LoadModule ?模块 ??模块文件名称,其中模块文件一般位于ServerRoot目录下的modules目录中;
???    4>LoadFile指令:
???????      功能类似于上述指令,区别在于后者可以通过绝对路径加载modules目录下的模块文件;

              5>ServerAdmin指令:
???????        当网站出现故障时,需要为客户提供一个可以帮助解决问题的邮件地址,ServerAdmin指令的作用就是提供这样的邮件地址;
???    6>ServerName指令:
???????       设置服务器本机的主机名称以及端口,对URL地址的重定向很重要;
???    7>DocumentRoot指令:
???????        设置WEB服务队客户端开放可见的文档根目录,也就是客户端访问网站的根目录;
???    8>ErrorLog指令:
???????           定位服务器错误日志的位置,默认使用相对路径;
???    9>ErrorLogFormat指令:
???????        设置错误日志的格式;
???    10>CustomLog指令:
????????          设置客户端的访问日志文件名以及日志格式,格式为:CustomLog ?文件名 ?格式;
???    11>LogFormat指令:
?????????         描述用户日志文件格式,一般我们会为此指令设置的日志格式创建别名,然后通过CustomLog指令调用该日志格式别名;

               12>Include指令:
?????????        允许Apache在主配置文件中加载其他的配置文件;
???    13>Options指令:
??????????       为特定目录设置选项,选项可以设置为None,代表不启用任何额外的功能,也可以使用如下常用选项:
???????????        All:开启除MultiViews之外的所有选项;
???????????        ExecCGI:允许执行Options指定目录下的所有CGI脚本;
???????????        FollowSymlinks:允许Options指定目录下的文件链接到目录外的文件或目录;
???????????        Indexes:如果与URL对应的Options目录下找不到DirectoryIndex指定的首页文档,则服务器将会把当前目录的所有文件索引出来;
???    14>Order指令:
?????????        控制默认访问状态以及Allow与Deny的次序,如果使用Order deny,allow,则先检查拒绝,再检查允许,当拒绝与允许有冲突时,允许优先,默认规则为                   允许;如果使用Order ??allow ,deny,则先检查允许,再检查拒绝,当允许与拒绝有冲突时,拒绝优先,默认规则为拒绝;

                           具体案例:
????????          Order ?deny,allow ?????
????????          Deny ?from ?all ????????拒绝所有;
????????
????????          Order ?Allow,Deny
????????          allow from all ??????????允许所有;
????????
????????          Order ?Allow,Deny
????????          allow ?from ?192.168.1.2 ???除此IP外拒绝所有;
????????
????????          Order ?Allow,Deny
????????          allow from 192.168.1.2
????????          Deny from All ????????????????????拒绝所有人访问;
????????
????????          Order ?Deny,Allow
????????          Deny ?from ?all
????????          allow from ?192.168.1.2 除此IP外拒绝所有;

                       15>IfDefine容器:
??????????          此容器封装的指令仅在启动Apache时测试条件为真才会被处理,测试条件需要在启动Apache时通过-D定义:
?????        实例:
??????????          service ??httpd ?-D ?UseCache ?-D ?MemCache ?restart
??????????
??????????        <IfDefine ?MemCache>
??????????          LoadModule ??mem_cache_module ?modules/mod_mem_cache.so
??????????        </IfDefine>
??????????
??????????        <IfDefine ?UseCache>
??????????          LoadModule ?cache_module ???modules/mod_cache.so
??????????        </IfDefine>     

                 16>IfModule容器:
??????????        此容器封装仅在条件满足时才会处理的指令,根据指定的模块是否已被加载来决定条件是否满足;
????      案例:
??????????        <IfModule ?unixd_module>
????????????        User ?daemon
????????????        Group ?daemon
??????????        </IfModule>
???     17>Directory容器:
?????????        该容器内 指令仅应用于特定的文件系统目录,子目录以及目录下的内容;
???     18><DirectoryMatch>
?????????        此指令类似于上述指令,但可以直接使用正则表达式匹配,无须使用~符号;
???     19>Files容器:
????????        容器内的指令仅应用于特定的文件,它可以使用~匹配正则表达式;
???     20>FilesMatch容器:
?????????        仅使用正则表达式匹配需要的文件,;
???     21>Location容器:
?????????        容器内定义的指令仅对特定的URL有效,语法格式为:<Location ?URL-path|URL> </Location>,如果需要使用正则表达式,可以用~符号来匹配;

                  22>LocationMathch容器和VirtualHost容器:
??????????        仅使用正则表达式来匹配URL,等同于使用了~符号匹配的Location;

  =============虚拟主机应用案例:
???????    虚拟主机是在一台服务器上同时运行多个WEB业务,Apache服务支持基于域名以及基于IP的虚拟主机类型,但是更多时候我们更喜欢基于域名的虚拟主机,服务器可以根据客户端访问HTTTP的头部信息来实现网站的分离解析,客户端可以使用不同的域名访问位于同一IP地址的服务器资源;
??????????????????
1》修改主配置文件:
????    将主配置文件中的Include ?conf/extra/httpd-vhosts.conf语句开启,Include指令将会读取次配置文件的内容作为主配置文件的一部分,并且两个虚拟主机的端口     也应该不同,所以主配置文件应该监听两个端口;

               

2》修改次配置文件: 

          

3》为两个不同的虚拟主机创建各自的页面根目录:
?????    当访问这两个网站时,如果没有合法的DNS服务器,可以通过修改hosts文件来进行域名解析,如果需要进行基于IP 地址的虚拟主机,只需将*修改为固定的IP地址即可,多个虚拟主机需要使用多个VirtualHost封装;

    # prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers ??????8
MinSpareServers ???5
MaxSpareServers ??20
ServerLimit ?????256
MaxClients ??????256
MaxRequestsPerChild ?4000
</IfModule>

?# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers ????????4
MaxClients ????????300
MinSpareThreads ????25
MaxSpareThreads ????75
ThreadsPerChild ????25
MaxRequestsPerChild ?0
</IfModule>
当上述的数值赋值不当时,刷新服务时的提醒?

        

  *******注意:
    linux内核默认情况下一个进程可以打开的文件的数量是1024;

         

  可以使用命令来修改这个值:
????    ulimit ?-n ?25535 ?????只能暂时有效;
    默认情况下Apache编译进来了哪些模块:

              

3》启动服务,配置防火墙规则或关闭防火墙:
????    service ??httpd ?restart
????    iptables ?-I ??INPUT ?-p ?tcp ?--dport ?80 ?-j ?ACCEPT
????    service ??iptables ??save     

Apache网站服务

原文地址:http://www.cnblogs.com/xiaocheche/p/7613317.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved