设为首页 收藏本站
查看: 957|回复: 0

[经验分享] Apache理论与实战

[复制链接]

尚未签到

发表于 2018-11-18 10:19:45 | 显示全部楼层 |阅读模式
  静态服务软件:
  apache老大哥,市场占有率最高,但成下降趋势。
  nginx
  lighttpd很好,但没发展起来,百度的贴吧在用。比nginx发展早。
  tengine:淘宝在用,nginx发展过来的。
  动态服务软件:
  tomcat服务于java程序(jpsdo
  resin服务于大型java程序,resin推广不好,但不如tamcat火(jpsdo
  php(fcgi)服务于php程序,配合apche不是采用守护进程的方式,而是模块modulemod_php5.so等方式。配合nginxlighttpd就是守护进程的方式(fcgi
  iis服务于微软的aspaspx程序。
  
  apache2.2是主流,现在有2.4版本。
  resin3.1是主流,现在有4.0版本
  tomcat6.0主流,现在有7.0版本
  php5.5是主流,现在6.6
  
  1、小企业会用源码编译的方式,比喻自己做饭、做菜吃
  2、yumrpm方式安装,简单方便,但不够灵活,访问量少,追求方便或内部使用的http的时候,或服务器数量多的时候,维护成本考虑,比如几千台服务器安装apache的时候。
  3、高级安装结合了编译和yum/rpm的双重优点,内部人员通过源码,根据自身业务需求,制作成符合你自己的rpm包,然后放到自己的定制的yum仓库里,然后在全网的客户端通过yum实现批量部署、管理、升级。在老男孩博客搜索rpm制作。
  
  Apache取自“a patchy server”的读音,意思是一个充满补丁的服务器。因为它是自由软件,所以不断有人来为它开发新的功能特性,修复原来的缺陷,才成为我们今天使用的安全稳定的web服务器。
  
  处理静态业务nginx比apche静态小文件并发要高,占有内存小。
  
  tar xf httpd.....
  cd httpd...
  ./configure \
  --prefix=/application/apache2.2.27 \
  --enable-deflate \  压缩
  --enable-expires \  过期,设置客户端缓存时间
  --enable-headers \
  --enable-modules=most \ 激活大多数模块
  --enable-so \
  --with-mpm=worker \ 有一个主进程产生线程,让线程对外服务。worker并发大些。
  --enable-rewrite  打开伪静态
  
  make&&make install
  ln -s /application/apache2.2.27/ /application/apache
  cd /application/apache
  /application/apache/bin/apachectl -t
  /application/apache/bin/apachectl start 其实也是调用/application/apache/bin/下的httpd开启的。
  
  wget 192.168.44.12 或 curl 192.168.44.12查看网站是否正常。
  /application/apache/bin/apachectl  -l 查看生效的模块
  
  stace /application/apache/bin/apachectl 跟踪进程到底卡在哪里了。
  grep -i DocumentRoot httpd.conf 查看网站的根目录在哪
  在/application/apache/htdocs下
  
  /application/apache/bin下有一些工具如下:
  ab 性能测试工具,简单、易用。同类软件还有jmeterloadrunnerwebbench等。
  apachectl 启动命令,实际调用的httpd
  apxs服务器编译安装扩展模块的工具,在进行DSO方式编译模块时会用到
  htcacheclean清理磁盘缓冲区的命令,需要在编译时指定相关参数才可使用,一般用得少。
  htpasswd控制命令程序,可为打开网站时输入密码
  rotatelogs自带的日志轮询命令,也还可以用,但工作场景用cronolog替代。
  
  /application/apache/conf下的一些目录:
  httpd.conf主配置文件,这个文件经常会访问修改,每一行参数作用都你应该弄很清楚明白。
  extra:这是额外的配置文件目录,可以把httpd.conf拆分成不同的小目录。
  htdocs默认的apache站点目录。
  
  搜索配置文件站点目录 /DirectoryIndex 可添加基础访问文件,weipeng.html
  然后检查语法/application/apache/bin/apachectl -t
  最后平滑重启/application/apache/bin/apachectl graceful
  daemon:编译安装软件默认用户
  
  
      Options Indexes FollowSymLinks  去掉indexes,当页面出错时不对外展示目录
      AllowOverride None此处none如果改成all,则程序员就有修改配置文件权限。
      Order allow,deny
Allow from all

  403错误:当没有主页面的时候又禁止了目录结构
  
  extra目录下重点关注一下三个文件:
  httpd-vhosts.conf 网站配置基础目录
  httpd-mpm.conf 网站工作模式设置,有workerprefork模式
  httpd-default.conf默认网站超时、程序员入口配置文件、控制是否隐藏apache版本号。

  虚拟主机:一个http服务需要配置多个站点,就需要虚拟主机,通过不同的域名或不同的端口号或不同的ip。主要采用基于域名方式,其他两个基本不用。
  
  www.etiantian.org  /var/html/www
  blog.etiantian.org /var/html/blog
  bbs.etiantian.org /var/html/bbs
  
  如果采用了extra那么在主配置文件httpd.conf里将Include conf/extra/httpd-vhosts.con
  这行前面的注释去掉。但此时还不通,需要在主配置文件里添加以下行:
  
      Options Indexes FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
  
  
  rewrite 301跳转。
  FQDN:fully qualified domain name 完整的域名解析。
  为避免开启服务时报错,在主配置文件中添加如下行:
  ServerName 127.0.0.1:80
  
  apche的日志详解:
  通用日志格式(common log format)
  组合日志格式(combinedlog format)
  工作中用combined比较多。可以在vhost里修改combinedcommon
  
  日志轮询:
  cd /home/oldboy/tools/
  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
  tar zxvf cronolog-1.6.2.tar.gz
  cd cronolog-1.6.2
  ./configure
  make
  make install
  pwd
  最终会生成一个文件ll /usr/local/sbin/cronolog 通过它来日志轮询,然后在配置文件httpd-vhosts.conf里修改成如下方式:
  
      ServerAdmin webmaster@dummy-host.example.com
      DocumentRoot "/var/html/bbs"
ServerName bbs.weipeng.com
      ErrorLog "logs/dummy-host.example.com-error_log"
      CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
  
  可看老男孩日志轮循详解。
  还有一种非常常用的日志切割方法,nginx也实用,如下:
  定时任务+脚本
  00点切割:
  cd /application/apache/logs
  mv www-access_log www-access_$(date +%F)log
  /application/apache/bin/apachectl graceful
  工作中pv是不记录图片、jscss等可以在combined后加上env=!IMAG
  
  修改隐藏版本,在安装httpd之前做,如下:
  1、vi   /home/weipeng/tools/httpd-2.2.27/include/ap_release.h在里面修改
  2、grep ^Server /application/apache/conf/extra/httpd-default.conf
       ServerTokens PROD
       ServerSignature off
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636486-1-1.html 上篇帖子: CentOS 7系统上部署Apache+PHP+MariaDB+xcache使用rpm,php module 下篇帖子: httpd(Apache)、httpd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表