构建Apache WEB服务器三部曲之一 源码安装

简介:

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

全球主流Web服务器份额:

wKiom1UXnM-wD1T5AAFLc-BTjn4887.jpg

Apache工作模式有多种,其中最常用的有两种:

    Prefork模式:PreforkMPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。

    在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。

    Worker模式:WorkerMPM 使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。

Worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。

环境:

CentOS 6.5 x86_64

Server IP:192.168.1.2

安装Apache服务器

http://apache.dataguru.cn/httpd/httpd-2.2.27.tar.gz

安装之前需要安装 gcc、apr、apr-util

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@jacken ~] # cd /software/
[root@jacken software] # ls
httpd-2.2.27. tar .gz
[root@jacken software] # tar -zxf httpd-2.2.27.tar.gz
[root@jacken software] # ls
httpd-2.2.27 httpd-2.2.27. tar .gz
[root@jacken httpd-2.2.27] #
. /configure  --prefix= /usr/local/apache2  && make  &&  make  install
[root@jacken httpd-2.2.27] # echo $?
0
启动Apache服务
[root@jacken ~] # /usr/local/apache2/bin/apachectl  start
httpd: apr_sockaddr_info_get() failed  for  jacken
httpd: Could not reliably determine the server'sfully qualified domain name, using 127.0.0.1  for  ServerName

wKiom1UXnZnBbYf-AADfH1-J0EI794.jpg

之所以启动Apache的时候报

httpd: apr_sockaddr_info_get() failed for jacken

httpd: Could not reliably determine the server'sfully qualified domain name, using 127.0.0.1 for ServerName

这不能属于一个错误,因为这个不影响服务的正常运行,但我看着就是不爽。

原因:这个问题应该是没有在 httpd.conf 中设定 ServerName

解决办法:

1
2
3
4
5
6
7
8
9
[root@jacken /] # vim /usr/local/apache2/conf/httpd.conf
[root@jacken /] # cat/usr/local/apache2/conf/httpd.conf | grep ^ServerName
ServerName localhost:80
[root@jacken /] # /usr/local/apache2/bin/apachectlstop
[root@jacken /] # /usr/local/apache2/bin/apachectlstart
[root@jacken /] #
[root@jacken /] # netstat -ntl | grep 80
tcp       0      0 :::80                       :::*                        LISTEN      
[root@jacken /] #

Apache安装成功。

添加自启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@jacken bin] # cp -p/usr/local/apache2/bin/apachectl /etc/init.d/httpd
[root@jacken ~] # vim /etc/init.d/httpd
在文件头部加入如下内容
### 
# Comments to support chkconfig on RedHatLinux 
# chkconfig: 2345 90 90 
# description:http server 
###
[root@jacken bin] # chkconfig --add httpd
[root@jacken bin] # chkconfig --level 35httpd on
[root@jacken bin] # chkconfig | grep httpd
httpd              0:off1:off2:on3:on4:on5:on6:off
[root@jacken bin] # /etc/init.d/httpd stop
[root@jacken bin] # /etc/init.d/httpd start
[root@jacken bin] # /etc/init.d/httpd status
[root@jacken bin] #


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1626157,如需转载请自行联系原作者
相关文章
|
1月前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
74 0
|
17天前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
64 5
|
17天前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
49 4
|
1月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
60 5
|
16天前
|
存储 数据挖掘 数据处理
巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践
随着数据湖技术的发展,企业纷纷探索其优化潜力。本文分享了巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践。Paimon 支持流式和批处理,提供高性能、统一的数据访问和流批一体的优势。通过示例代码和实践经验,展示了如何高效处理实时数据,解决了数据一致性和故障恢复等挑战。
99 61
|
17天前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
16天前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
39 0
|
29天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
16 0
|
1月前
|
监控 Java 关系型数据库
构建高效可靠的服务器端应用
【10月更文挑战第6天】构建高效可靠的服务器端应用
|
27天前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
567 13
Apache Flink 2.0-preview released

推荐镜像

更多