apache是什么?

  apache http server 简称apache是世界上排名前列的web服务器,因开源,简单,高性能,速度快,还可以做代理服务器,所以广受人们欢迎

  httpd:httpd是apache的服务

安装和编译(请自行百度)

apache的配置

  配置文件:/etc/httpd/conf/httpd.conf
  配置如下:

1 、 Apache的默认网站根目录设置及访问控制
  【此区域的配置文件,主要是针对Apache默认网站根目录的设置以及相关的权限访问设置,默认对网站的根目录具有访问权限,此选项默认 值即可】
    DocumentRoot “/var/www/html” 默认站点主目录 或者是 DocumentRoot "/usr/local/httpd/htdocs "
2 、ServerRoot "/etc/httpd" 用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对 路径都是想对这个目录下
3、 Timeout 60 服务端与客户端断开的时间
4、 KeepAlive Off 关闭常连接
  【此区域是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,如果网站访问量比较大关闭此项比较 好),修改为:KeepAlive On 表示允许程序性联机。由于http是无状态协议,一次请求(建立一次TCP连接)只能获取一个资源, 当页面中包含多个资源的时候,就需要多次请求(建立多次TCP连接),这样导致服务器性能下降。为此定义了KeepAlive机制,可 以定义在一定时间内或请求数在一定数量之内只需要建立一次TCP连接。】
5、 MaxKeepAliveRequests 100 一个连接的最大请求数
6、 KeepAliveTimeout 超时时间
7、 Include conf.d/*.conf 加载的配置文件
8、 TypesConfig /etc/mime.types 映射关系
9、 ServerAdmin root@localhost 管理员的邮箱
10、 apache的运行用户配置:默认为daemon
  User apache
  Group apache
  启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全。通过ps -ef |grep httpd查看
11、 Apache服务默认管理员地址设置
  【此选项主要用指定Apache服务管理员通知邮箱地址,选择默认值即可,如果有真实的邮箱地址也可以设置此值】
  ServerAdmin you@example.com
12、 apache默认端口
  listen 80
13、 Apache的根目录访问控制设置
  <Directory />
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all      #拒绝访问                      #allow from all   允许所有请求
  </Directory>
14、 Apache的默认首页设置
  【此区域文件主要设置Apache默认支持的首页,默认只支持:index.html首页,如要支持其他类型的首页,需要在此区域添加:如index.php表 示支持index.php类型首页】
  <IfModule dir_module>
  DirectoryIndexindex.html index.php
  </IfModule>
15、 Apache关于日志文件配置
  【此区域文件主要是针对Apache默认的日志级别,默认的访问日志路径,默认的错误日志路径等相关设置,此选项内容默认即可ErrorLog "logs/error_log"
16、 <IfModule mime_module> MIME媒体文件,以及相关http文件解析配置说明
17、 定义httpd的pid文件
  【此区域记录httpd守护进程的pid号码,这是系统识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的父进 程】
  PidFile run/httpd.pid
18、 测试server-status模块添加 注释去掉,放开这块
  <Location /server-status>
  SetHandler server-status #加载模块
  Order deny,allow #过滤规则排序
  Deny from all
  Allow from all
  </Location>
  正确配置后访问 ip:端口号/server-status后页面出现,可以web端监控apache
  1 requests currently being processed, 7 idle workers
  1个正在运行的进程 7个空闲进程
19、 三种工作模式:
  prefork
  启动httpd后,会有父进程下很多子进程,但在这种工作模式下,一个子进程下只有一个线程(多进程单线程)
  startservers 10 启动时 启动多少进程
  minSpareServers 10 最小空闲
  maxSpareServers 10 最大空闲
  serverlimit 256 最多启动256个进程
  maxclients 256 最大并发客户端个数
  maxrequestsperchile 4000 子进程能处理多少个请求 若=0 是不限制,不要这么设置 容易内存泄漏,若是超过此数目进程被杀死并重新 创建
  需要注意的是:ServerLimit最大值为20000个,并且:由于profork是单一线程的进程,所以每个进程在同一时间里仅能处理一个请求(也就 是一个请求一个进程),所以MaxClients的值要和ServerLimit一致。而且,profork的开销比较大,不过稳定性比较强。

  </IfModule>

  worker:
  多进程多线程,每个子进程会启动多个线程(最大2w个),但有个问题是 如果某一个线程死锁 其他线程也死了 杀掉子进程 其下的所有线程也杀掉了
  <IfModule worker.c> #当httpd服务使用的是worker模型的时候
  StartServers 6 #默认启动6个作业进程
  MaxClients 300 #最大并发客户端数为300个
  MinSpareThreads 25 #空闲线程的数量不低于25个
  MaxSpareThreads 75 #空闲线程数最大75个
  ThreadsPerChild 25 #每个进程默认启动25个线程
  MaxRequestsPerChild 0 #每个进程可以处理的请求数不限制
  </IfModule>
  maxrequestsperchild:

enent:
  工作模式和worker很像,最大区别在于在keeplive下长时间占用线程照成资源浪费的问题,也就是线程动态分配, 是一个基于线程的、更高级的事件驱动模型,可以实现一个线程处理N个请求。

  (event在遇到不兼容的模块会自动转成worker模式)

  <IfModule mpm_event_module> //如果Apache采用的是Event模式,则该配置生效
  StartServers 3 //服务器启动时创建的子进程数
  MinSpareThreads 75 //最小空闲线程数
  MaxSpareThreads 250 //空闲子进程的最大数量
  ThreadsPerChild 25 //每个子进程产生的线程数量
  MaxRequestWorkers 400 //限定服务器同一时间内客户端最大接入的请求数量,默认是150;任何超过了该限制的请求都要进入等待队列,一旦一个个连接被释放,队列中的请求才将得到服务。
  MaxConnectionsPerChild 0 // 每个子进程在其生命周期内允许最大的请求数量,如果请求总数已经达到这个数值,子进程将会结束,如果设置为0,子进程将永远不会结束。将该值设置为非0值,可以防止运行PHP导致的内存泄露。

20、更改工作模式(如果把默认prefork模式切换为worker模式)

  进入/usr/sbin目录

  mv httpd httpd.prefork

  mv httpd.worker httpd

  vi /etc/httpd/conf/httpd.conf  编辑查看worker参数配置

  /etc/init.d/httpd restart        重启apache

apache监控:

  可以通过前面说的ip/status 监控,也可以linux命令top,ps,查看日志

apache调优:

  服务器参数调优: 网络内核参数调优,文件系统参数调优,I/O调优
  编译调优
  配置调优:包括运行模式调优,模块调优
  使用缓存代理
  使用集群方案

tips:

  apache能用php的原因:能解析php模块
  apache是一个web容器
  实际工作中,可以将dtimeout超时改下一点
  apache性能监控需要嵌入php代码中,如果你自己去改,开发会怼死你
  ./httpd -v 查看httpd设置的工作模式

  apache启动   service httpd start

     重启 service httpd restart

        关闭    service httpd stop

        也可以在bin下启动

tomcat:tomcat是一个免费代码的轻量级开源web应用服务器,处理html动态能力强大,而apache处理静态突出,一般可以和apache嵌套后,apache为HTML页面服务,tomcat为运行JSP 页面和Servlet

环境变量:

  1.tomcat依赖jdk  输入java -version查看是否安装

  2.打开环境变量创建TOMCAT_HOME
  目录地址如 D:\tomcat\apache-tomcat-7.0.82\apache-tomcat-7.0.82\bin
  3.CLASSPATH
  加入变量 %TOMCAT_HOME%\BIN
  4.启动bin下的startup.bat
  linux就是.sh

安装tomcat请自行百度

开机自启动: 

  vi /etc/rc.d/rc.local         #加入下面两行

    export JAVA_HOME=/usr/java/jdk1.7.0_76
    /usr/local/tomcat/apache-tomcat-7.0.54/bin/startup.sh start

  chmod +x rc.local    #加入可执行权限

配置文件 server.xml:

  默认监控端口号8080 超时时间20000毫秒 最大线程数180  下面是https端口8443 (不用管)

tomcat的web监控

 web监控: 在配置好Tomcat7/8后,我们往往需要访问Tomcat7/8的Manager以及Host Manager。就需要在tomcat-users.xml中配置用户角色来实现,之后在地址栏输入:localhost:8080访问   

  1.访问tomcat
  2.点击manager app
  3.根据提示修改tomcat/conf/tomcat-user.xml

  <role rolename="manager-gui"/>
  <user username="tomcat" password="123456" roles="manager-gui"/>

  修改设置用户名密码

  4.重启后访问,可以监控一下tomcat的运行情况/工作状态
  http://xxxx.xxxx.xxxx.xx:xxxx/manager/status

  linux监控:top,ps,查看日志

tomcat的启动 bin下./startup.sh

     关闭 bin下./shutdown.sh 或者kill杀掉

tips:

  一般项目文件放在webapps中

版权声明:本文原创发表于 博客园,作者为 RainBol本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

apache/tomcat笔记的更多相关文章

  1. Tomcat负载均衡、调优核心应用进阶学习笔记(三):LNMT nginx+tomcat、LAMT apache+tomcat、session会话保持、不错的站点

    文章目录 LNMT nginx+tomcat LAMT apache+tomcat 基于mod_proxy 单节点 配置基于mod_proxy的负载均衡 基于mod_jk(需要编译安装) 单节点 配置 ...

  2. 读书笔记--Apache.Tomcat.6高级编程 目录

    1.Apache Tomcat 2.web的应用:Servlet.JSP及其他 3.Tomcat安装 4.Tomcat架构 5.Tomcat基本配置 6.高级Tomcat特性 7.Web应用程序配置 ...

  3. Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程

    人原创,一个字一个字地码的,尊重版权,转载请注明出处! http://blog.csdn.net/chaijunkun/article/details/6987443 最近在开发的项目需要承受很高的并 ...

  4. 2.Apache + Tomcat + mod_jk实现集群服务

    转自:http://www.cnblogs.com/dennisit/p/3370220.html Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制. 实现效果:用 ...

  5. Java之Apache Tomcat教程[归档]

    前言 笔记归档类博文. 本博文地址:Java之Apache Tomcat教程[归档] 未经同意或授权便复制粘贴全文原文!!!!盗文实在可耻!!!贴一个臭不要脸的:易学教程↓↓↓ Step1:安装JDK ...

  6. java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager

    问题: 使用Springboot打包为war部署于Tomcat7中报错 java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringMa ...

  7. 关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

    先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...

  8. 深入剖析tomcat 笔记——第8章 载入器

    深入剖析tomcat 笔记 目录:

  9. Apache Tomcat开机后台启动

    作为软件开发人员,经常接触Tomcat,完成的项目,需要部署到服务器上的Tomcat,才能供其他人访问浏览. 因为存在以下问题,所以需要把Tomcat设置为后台自动启动: 1.服务器可能因环境故障面临 ...

随机推荐

  1. union all 关键字的应用(合并两个查询结果集到同一个结果集)

    在此对于数据库中 union all 关键字的功能和用法进行简单的使用介绍. 这是我工作中的一个需求: 有两个 A表 和B表. A表的数据: B表的数据: 现在有这样一个需求,让他一次性的全部查出来. ...

  2. LeetCode 171. Excel表列序号(Excel Sheet Column Number) 22

    171. Excel表列序号 171. Excel Sheet Column Number 题目描述 给定一个 Excel 表格中的列名称,返回其相应的列序号. 每日一算法2019/5/25Day 2 ...

  3. 循环(数组循环、获取json数据循环)、each()循环详解

    return; // 退出循环(不满足,退出此次循环.下次满足条件,依然会走此循环)return false; //退出函数(退出所有) 一. 数组循环: html: <div class=&q ...

  4. 《The Google File System》 笔记

    <The Google File System> 笔记 一.Introduction 错误是不可避免的,应当看做正常的部分而不是异常.因此需要设计持续监控,错误检查,容错,自动恢复的系统. ...

  5. 以php中的算数运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

    // 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) ...

  6. golang之匿名函数结合defer

    defer语句中的函数会在return语句更新返回值变量后再执行,又因为在函数中定义的匿名函数可以访问该函数包括返回值变量在内的所有变量,所以,对匿名函数采用defer机制,可以使其观察函数的返回值. ...

  7. Bootsrap表格表单及其使用方法

    bootstrap的使用 bootstrap中的js插件依赖于jQuery 因此jQuery要在bootstrap之前引入 参考官网标准引入方法和引入样式 排版 标题 Bootstrap和普通的HTM ...

  8. Vue响应式变化

    Vue有一个很方便的特性就是Vue的双向绑定,即响应式变化,在Vue2.X版本中,Vue响应式变化靠的是Object.defineProperty方法实现的,但是这个方法有个问题,就是对数组的支持不全 ...

  9. Queryable查询扩展

    /// <summary> /// 查询扩展 /// </summary> /// <typeparam name="T"></typep ...

  10. Topics in CS(difference between compile and interpret)

    编译 Compile:把整个程序源代码翻译成另外一种代码,然后等待被执行,发生在运行之前,产物是「另一份代码」. 解释 Interpret:把程序源代码一行一行的读懂然后执行,发生在运行时,产物是「运 ...