热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Apache服务器入门教程

今天本来是想试一下GREENPLUM可写外部表的,结果发现服务器上没有APACHE服务,所以就变成了学习APACHE的过程了。首先要下载一个APACHE,我是从下面的网址下载的,用的2.0.64版本http://httpd.apache.org/download.cgi#apache20然后就是常规步骤了解压gz

今天本来是想试一下GREENPLUM可写外部表的,结果发现服务器上没有APACHE服务,所以就变成了学习APACHE的过程了。
首先要下载一个APACHE,我是从下面的网址下载的,用的2.0.64版本
http://httpd.apache.org/download.cgi#apache20
然后就是常规步骤了
解压 gzip
解包 tar xvf
编译 configure --prefix=...
安装 make && make install

然后进入到在configure时指定的--prefix目录中,编辑conf目录下的httpd.conf配置文件
关于配置文件httpd.conf的详细说明可以参考下面的官方文档 ,我这里只简单列出几个
http://httpd.apache.org/docs/2.0/
#用户名和用户组       
User gpadmin1
Group gpadmin1

#服务器名称以及监听的端口号
ServerName 10.20.151.9:80
Listen 80       

#访问时的根路径
DocumentRoot "/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs"

然后就可以启动了
[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs]
#/home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start

[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs]
#ps -ef |grep httpd
root      6561     1  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
gpadmin1  6563  6561  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
gpadmin1  6564  6561  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
gpadmin1  6565  6561  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
gpadmin1  6566  6561  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
gpadmin1  6567  6561  0 17:25 ?        00:00:00 /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start
root      6569  3736  0 17:25 pts/5    00:00:00 grep httpd
这里我们看到多个HTTPD进程,其实是一个父进程多个子进程,关于这个子进程的数量可以使用下面几个参数来控制
###########################
MinSpareServers 5
MaxSpareServers 20
在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。
因此就可以使用参数MinSpareServers来设置最少的空余子进程数量, 以及使用参数MaxSpareServers 来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副本退出。

StartServers 8
StartServers参数就是用来设置httpd启动时启动的子进程副本数量,这个参数与上面定义的MinSpareServers和MaxSpareServers参数相关,都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,小于MinSpareServers和大于MaxS pareServers都没有意义。 
###########################     

打开浏览器,输入如下地址就可以访问/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs/index.html了
http://10.20.151.9/
同时,也可以使用wget命令从该服务器上下载文件
[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install]
#wget http://10.20.151.9/index.html
--16:45:47--  http://10.20.151.9/index.html
Connecting to 10.20.151.9:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6738 (6.6K) [text/html]
Saving to: `index.html'

100%[===========================================================================================>] 6,738       --.-K/s   in 0s    

16:45:47 (584 MB/s) - `index.html' saved [6738/6738]
[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install]
#ll index.html
-rw-r--r-- 1 root root 6738 Jun 13 16:30 index.html
前面我们指定了参数DocumentRoot "/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs",因此在后面的访问中都是把这个目录当作“根目录”,然后再访问其下层的目录内容,但有时我们可能需要把部分文件放置到不同的地方去,这可以通过使用软连接来实现。
下面我们举个简单的例子,在根目录下创建文件haha.txt,然后在参数DocumentRoot指定目录下创建一个软链接root到根目录,之后在wget命令中通过这个软链接来访问实际的根目录下文件

[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs]
#cat /haha.txt
haha

[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs]
#wget http://10.20.151.9/root/haha.txt
--19:10:18--  http://10.20.151.9/root/haha.txt
Connecting to 10.20.151.9:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5 [text/plain]
Saving to: `haha.txt'

100%[===========================================================================================>] 5           --.-K/s   in 0s    

19:10:18 (1.19 MB/s) - `haha.txt' saved [5/5]

这里已经成功的把根目录下的文件haha.txt拉到当前目录下了
[Intranet root@hadoop5 /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs]
#cat haha.txt
haha

有时在生产环境上不可能开放所有端口对外提供访问,比如只开放80端口对外提供访问,可是你有其他的程序想要通过WEB界面来进行一些监控,比如HADOOP的NAMENODE和JOBTRACKER的监控页面,这些程序使用80外的其他端口,这时如果仍要在WEB界面进行访问,就需要在APACHE的配置文件里做一些端口映射转换了。
在/home/gpadmin1/joe.wangh/apache/httpd_install/conf目录下的httpd.conf配置文件中增加如下几行

RewriteEngine on
RewriteLog logs/rewrite.log
RewriteRule  ^/job/(.*)            http://10.20.151.9:50030/$1?%{query_string} [L,P]
RewriteRule  ^/dfs/(.*)           http://10.20.151.9:50070/$1?%{query_string} [L,P]

重启APACHE服务使新的配置生效
[Intranet root@hadoop5 /root]
#/home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k restart
[Intranet root@hadoop5 /root]
#

这时通过浏览器访问如下链接
http://10.20.151.9/dfs/dfshealth.jsp
就相当于访问
http://10.20.151.9:50070/dfshealth.jsp

另外,有的朋友可能在使用非root账户启动APACHE时会报错
[gpadmin1@hadoop5 htdocs]$ /home/gpadmin1/joe.wangh/apache/httpd_install/bin/httpd -f /home/gpadmin1/joe.wangh/apache/httpd_install/conf/httpd.conf -k start 
(13)Permission denied: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs
使用如下语句解决即可
chmod u+s httpd
chown root:root httpd

最后一点需要说明的是,有时候我们可能需要对访问一些目录权限进行控制。下面我举一个简单的例子,假设我们对在WEB中浏览/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs/autest/目录时进行权限控制,需要输入用户名和密码
1、要生成一个密码文件
[gpadmin1@hadoop5 bin]$ ./htpasswd -bc .htpasswdtest joe joe
Adding password for user joe
2、把生成的密码文件./htpasswd拷贝到目录/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs/autest/下
3、在/home/gpadmin1/joe.wangh/apache/httpd_install/htdocs/autest/下创建.htaccess文件,内容如下
AuthName "RTDC"
AuthType Basic
AuthUserFile /home/gpadmin1/joe.wangh/apache/httpd_install/htdocs/autest/.htpasswdtest
require valid-user

OK了,这时我们在WEB中输入如下地址访问,就会提示我们输入密码了
http://10.20.151.9/autest/


推荐阅读
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • DNS服务一、概述1.全称:Domainnamesystem(域名系统)2.作用:1)正向解析: ... [详细]
  • 本文介绍了如何在 MapReduce 作业中使用 SequenceFileOutputFormat 生成 SequenceFile 文件,并详细解释了 SequenceFile 的结构和用途。 ... [详细]
  • mybatis 详解(七)一对一、一对多、多对多
    mybatis详解(七)------一 ... [详细]
author-avatar
寒灵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有