Apache理论与实战

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

静态服务软件:

apache老大哥,市场占有率最高,但成下降趋势。

nginx

lighttpd很好,但没发展起来,百度的贴吧在用。比nginx发展早。

tengine:淘宝在用,nginx发展过来的。

动态服务软件:

tomcat服务于java程序(jpsdo

resin服务于大型java程序,resin推广不好,但不如tamcat火(jpsdo

phpfcgi)服务于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、小企业会用源码编译的方式,比喻自己做饭、做菜吃

2yumrpm方式安装,简单方便,但不够灵活,访问量少,追求方便或内部使用的http的时候,或服务器数量多的时候,维护成本考虑,比如几千台服务器安装apache的时候。

3、高级安装结合了编译和yum/rpm的双重优点,内部人员通过源码,根据自身业务需求,制作成符合你自己的rpm包,然后放到自己的定制的yum仓库里,然后在全网的客户端通过yum实现批量部署、管理、升级。在老男孩博客搜索rpm制作。

 

Apache取自“a patchy server”的读音,意思是一个充满补丁的服务器。因为它是自由软件,所以不断有人来为它开发新的功能特性,修复原来的缺陷,才成为我们今天使用的安全稳定的web服务器。

 

处理静态业务nginxapche静态小文件并发要高,占有内存小。

 

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:编译安装软件默认用户

 

<Directory "/application/apache2.2.27/htdocs">

    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

这行前面的注释去掉。但此时还不通,需要在主配置文件里添加以下行:

<Directory "/var/html">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

 

rewrite 301跳转。

FQDNfully 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里修改成如下方式:

<VirtualHost *:80>

    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

</VirtualHost>

可看老男孩日志轮循详解。

还有一种非常常用的日志切割方法,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


本文转自  流颗星  51CTO博客,原文链接:
http://blog.51cto.com/liukexing/1966526
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
336 5
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
260 2
|
Kubernetes Apache 对象存储
海程邦达基于Apache Paimon+Streampark实现 Streaming warehouse的实战应用(中)
海程邦达基于Apache Paimon+Streampark实现 Streaming warehouse的实战应用
451 0
|
11月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
589 5
|
4月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
189 3
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
794 4
|
弹性计算 应用服务中间件 Linux
双剑合璧:在同一ECS服务器上共存Apache与Nginx的实战攻略
在ECS服务器上同时部署Apache和Nginx的实战:安装更新系统,Ubuntu用`sudo apt install apache2 nginx`,CentOS用`sudo yum install httpd nginx`。配置Nginx作为反向代理,处理静态内容及转发动态请求到Apache(监听8080端口)。调整Apache的`ports.conf`监听8080。重启服务测试,实现两者高效协同,提升Web服务性能。记得根据流量和需求优化配置。【6月更文挑战第21天】
1204 1
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
922 0

热门文章

最新文章

推荐镜像

更多