Apache网站服务

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     

转载于:https://www.cnblogs.com/xiaocheche/p/7613317.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微积分的发展史

来源&#xff1a;数学中国早期萌芽时期&#xff1a;1、 古西方萌芽时期&#xff1a;公元前七世纪&#xff0c;泰勒斯对图形的面积、体积与的长度的研究就含有早期微积分的思想&#xff0c;尽管不是很明显。公元前三世纪&#xff0c;伟大的全能科学家阿基米德利用穷竭法推算出了…

c# mysql代码中写事务_代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性...

[c#]代码库代码中使用事务前提&#xff1a;务必保证一个功能(或用例)在同一个打开的数据连接上&#xff0c;放到同一个事务里面操作。首先是在D层添加一个类为了保存当前操作的这一个连接放到一个事务中执行&#xff0c;并事务执行打开同一个连接、事务完成关闭同一个连接的一个…

AI的“色差”与“纠偏”

来源&#xff1a;脑极体在美国学术界声援BLM&#xff08;Black Lives Matter&#xff09;之后&#xff0c;事情的走向有点难以预料。学术界的反种族歧视反省似乎没有了下文&#xff0c;但是如火如荼的BLM运动早已蔓延开来&#xff0c;这次将矛头指向了AI界。事情的起因是杜克大…

英伟达奔驰共同发布自动驾驶系统,还自带停车功能

大数据文摘出品来源&#xff1a;VB编译&#xff1a;白浩然最近&#xff0c;英伟达&#xff08;Nvidia&#xff09;宣布为了和奔驰&#xff08;Mercedes-Benz&#xff09;汽车紧密合作&#xff0c;计划从2024年开始推出一款车载计算系统和AI基础设施&#xff0c;该技术于去年1月…

【hihocoder 1312】搜索三·启发式搜索(启发式搜索写法)

【题目链接】:http://hihocoder.com/problemset/problem/1312?sid1092363 【题意】 【题解】 定义一个A*函数 f stepval 这里的val是当前这个状态;每个点到目标状态的点的曼哈顿距离的绝对值; (这个值肯定比真正需要花费的路程短) step就为当前状态花费的步数; 把普通…

Gartner发布2020年数据与分析领域的十大技术趋势

来源&#xff1a;Gartner公司近日&#xff0c;Gartner发布了数据与分析领域的十大技术趋势&#xff0c;为数据和分析领导者的新冠疫情&#xff08;COVID-19&#xff09;响应和恢复工作提供指导&#xff0c;并为疫情后的重启做好准备。数据和分析领导者如果希望在疫情后能持续创…

java 中文域名转码_转换java方法

java date String 类型相互转换这种转换要用到java.text.SimpleDateFormat类字符串转换成日期类型&#xff1a;方法1&#xff1a;也是最简单的方法 Date datenew Date("2008-04-14");方法2&#xff1a;SimpleDateFormat sdfnew SimpleDateFormat("yyyy-M...文章…

【42.59%】【codeforces 602A】Two Bases

time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output After seeing the “ALL YOUR BASE ARE BELONG TO US” meme for the first time, numbers X and Y realised that they have different bases, which complic…

java2019 数据结构算法面试题_2019年JVM最新面试题,必须收藏它

1、JVN内存结构方法区和对是所有线程共享的内存区域&#xff1b;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域&#xff0c;在虚拟机启动时创建。此内存区域的唯一…

前沿科技 | 中科院科学家研究揭示灵活行动选择的神经机制

来源&#xff1a;中国科学院6月24日&#xff0c;中国科学院科学家团队——脑科学与智能技术卓越创新中心&#xff08;神经科学研究所&#xff09;、上海脑科学与类脑研究中心、神经科学国家重点实验室姚海珊研究组在eLife上在线发表了题为《次级运动皮层在灵活视觉分类行为中参…

中科院调查组成立!杨辉发表声明,并对举报信作出详细回应

左&#xff1a;加州大学圣地亚哥分校教授付向东。右&#xff1a;中科院神经所青年 PI 杨辉。图片来源&#xff1a;UCSD/一席演讲来源 BioArtReports 中科院神经所 等整理 科研圈7 月 2 日&#xff0c;网络消息称加州大学圣地亚哥分校细胞和分子医学系教授付向东发布实名举报信&…

java lookandfeel nimbus_动态改变LookAndFeel

LookAndFeel可以改变图形界面的风格&#xff0c;比如说可以将Java的默认界面改变成仿Windows&#xff0c;UNIX等其它风格的界面&#xff0c;主要有以下几种界面风格&#xff1a;metal(默认):"javax.swing.plaf.metal.MetalLookAndFeel"windows:"com.sun.java.sw…

盘点华为系工控企业——中国A股上市公司最多的创业体系

来源&#xff1a;OFweek工控别看今日华为风光无限&#xff0c;美国举国打压下更显华为雄厚实力&#xff1b;但早在2000年左右&#xff0c;全球IT产业泡沫破灭&#xff0c;作为通信设备商&#xff0c;华为也受累进入寒冬&#xff0c;任正非为了鼓励团队士气&#xff0c;写出了著…

Java多线程编程递增_java多线程编程之简介

编写正确的程序很难&#xff0c;编写正确的多线程程序更难。如果对多线程理解的不够深入&#xff0c;编写出来的程序往往跟自己的预期不一样&#xff0c;甚至不知道问题出现在哪里。因此&#xff0c;如果想成为一个好的程序员&#xff0c;掌握多线程是必修的一门功课。多线程带…

JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...

学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法&#xff1a;new Date(); 功能&#xff1a;创建一个日期时间对象 返回值&#xff1a;比传参的情况下&#xff0c;返回当前的日期时间对象…

秦川团队《科学》刊发研究:新冠感染恒河猴康复后不会再感染

来源&#xff1a;澎湃新闻新冠病毒&#xff08;SARS-CoV-2&#xff09;肺炎疫情全球大流行的背景下&#xff0c;恢复期患者是否有再次感染的风险目前尚不清楚。来自中国的最新科研成果表明&#xff0c;原发性新冠病毒感染可防止随后再感染&#xff0c;这对新冠患者的预后和下一…

java禁止修改map_Java中实现不可变Map

有时最好不允许修改 java.util.Map&#xff0c; 例如跨线程共享只读数据。为此&#xff0c;我们可以使用Unmodifiable Map或Immutable Map。在这个快速教程中&#xff0c;我们将看到它们之间的区别。然后&#xff0c;我们将介绍可以创建不可变Map的各种方法。不可修改与不可变…

昨夜,5G R16标准正式冻结!5G物联网扬帆起航

作者&#xff1a;赵小飞物联网智库 整理发布转载请注明来源和出处导 读昨天夜里&#xff0c;负责5G标准的国际组织3GPP TSG&#xff03;88全体会议宣布5G R16标准冻结。在新冠疫情全球肆虐的背景下&#xff0c;标准化推进工作遇到非常大的挑战&#xff0c;而3GPP的专家们依然能…

Linux下grub.cnf详解

grub.conf跟系统启动项有关&#xff0c;对于重置密码。来说小case。。。 1、介绍 在Red Hat Linux7.2之后&#xff0c;默认的引导加载程序从LTLO变为GRUB.这个引导加载程序使用户能够选择何时以及如何引导安装在计算机硬盘上的可引导的操作系统。 2、说明 变量 说…

(二)用户相关操作

一、导入jar包 见 http://pan.baidu.com/s/1dE9kMJZ 二、导入c3p0并修改值 c3p0.driverClasscom.mysql.jdbc.Driver c3p0.jdbcUrljdbc:mysql://localhost:3306/store c3p0.userroot c3p0.password123456 三、导入工具类 见 http://pan.baidu.com/s/1miutJXe 有关这些工具类的分…