搭建linux apache服务器(转自蔡元纪老师的文章)

搭建linux apache服务器

一、简介:

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等

二、软件包:

httpd-2.2.3-6.e15.i386.rpm  rpm包是apache的安装包,位置光盘的Server目录。

三、Apache的配置文件:

/etc/httpd/conf/httpd.conf    该文件是apache的主配置文件

/etc/httpd/conf.d/ssl.conf 该文件是apacheSSL功能配置文件

/etc/httpd/conf.d/welcome.conf 该文件是apache安装完毕后默认的主页文件

四、搭建web服务器:

1、服务器环境

服务器的IP地址为172.24.0.4/16,如下图所示:

图片

1

2、安装apachermp软件包

为服务器安装apache的软件包httpd-2.2.3-6.e15.i386.rpm,如下图2所示:

图片

2

由于apache的包必须依赖libpq.so.4 的函数库以及apr等软件包,所以系统会提示无法安装,如下图3所示:

图片

3

所以在安装apache的服务包时,需要同时安装apr apr-util postgresql-libs 软件包,如下图4所示:

图片

4

3、启动apache服务,并测试

安装完毕之后,设置apache服务开机自动 启动,并手工启动该服务,如下图5所示:

图片

5

apache服务启动这后,在客户端就可以打开IE访问apache服务了。如下图8所示:

图片

6

4apache的配置文件/etc/httpd/conf/httpd.conf

默认的apache主页文件为:/etc/httpd/conf.d/welcome.conf,如果需要定制个人的主页文件,需要将默认主页文件删除。如下图7所示。

图片

7

Apache的主配置文件为/etc/httpd/conf/httpd.conf ,在该文件中可以设置网站主目录的位置(如下图8所示)、网站主页名称(如下图9所示)、网页字符集(如下图10所示)等等。

图片

8

图片

9

图片

10

在以上设置的网站主目录中生成主页文件,如下图11所示:

图片

11

在客户端打开IE浏览器测试如下图12所示:

图片

12

5、配置虚拟主机

(1) 利用多IP地址的方式实现虚拟主机。首先必须在服务器的网卡上设置多个IP地址,本例中已经设置了172.24.0.4/16172.24.0.5/16两个IP地址。然后在apache的主配置文件最后一行添加以下内容,如图13所示。图13中所示意思为把172.24.0.4绑定/var/www/html站点,而把172.24.0.5绑定为/var/www/html2站点。所以当客户端访问172.24.0.4时,打开的网站为/var/www/html;当客户端访问172.24.0.5时,打开的网站为/var/www/html2

图片

13

(2) 利用多域名(多主机头值)实现虚拟主机。首先在本机仅设置一个IP地址,本例中为:172.24.0.4/16(IP为默认IP地址)。然后修改apache的主配置文件/etc/httpd/conf/httpd.conf,在最后一行添加以下内容,如图14所示。图14中所示的意思为:将本机的默认IP与域名www.example.com 绑定 /var/www/html网站;将本机的默认IP与域名station4.example.com绑定/var/www/html2网站。注意事项:必须添加NameVirtualHost *:80 行,否则虚拟主机不生效。

图片

14

为了能让客户端解析域名,在本例中我们修改c:/windows/system32/drivers/etc/hosts文件,在该文件中添加关于域名www.example.com所对应的IP,以及关于域名station4.example.com所对应的IP。如下图15所示:

图片

15

然后打开客户端的IE浏览器,分别输入station4.example.comwww.example.com的域名进行测试,如下图16、图17所示:

图片    图片

16                                       17

五、关于apache的身份验证:

在某些含有敏感数据的网站,我们需要对该网站做身份验证,有机的控制只有合法用户可以访问,而非法用户不能访问。若要实现该功能,我们必须首先创建一个“合法用户列表”文件,并将“合法用户”的用户名与密码存储在该文件中。方法如下图18所示。说明:其中  "htpasswd  -c  文件路径及文件名称  用户名"  该命令是创建“合法用户列表”文件,并将某用户信息加入到该文件中。而"htpasswd 文件路径及文件名称  用户名该命令只是将指定用户信息加入到该文件中。

图片

18

然后,需要在apache的主配置文件/etc/httpd/conf/httpd.conf中加入控制语句,如下图19所示。

图片

19

19说明:其中<Directory "目录名">  是设置需要保护哪个目录中的网页

           AuthType Basic           是设置身份验证方法为“基本身份验证”

           AuthName "................"     是设置客户端访问时的提示信息是什么

           AuthUserFile 合法用户列表文件名   是设置使用哪个文件验证用户信息

           Require valid-user        是设置 只要用户名与密码正确的用户都可访问

最后重新启动apache服务(即输入命令service httpd restart ) ,并在客户端测试。本例中如下图20所示:

图片

20

六、关于apache的加密--实现SSL通迅

对于一些诸如银行、交易等要求安全性特别高的网站,我们可以使用证书实现SSL通迅,进行保护客户端与服务器的通迅过程。如果希望实现apacheSSL通迅,首先需要apache支持SSL的功能。所以需要我们安装mod_ssl的软件包,如下图21所示:

图片

21

(1) 然后需要在“/etc/pki/tls/certs/”目录中生成公钥与私钥文件,并将私钥文件存储到“/etc/pki/tls/private”目录中,才能实现网站的SSL。但生成公钥、私钥文件的方法很多,在此笔者先来讲述第一种方法。该方法就是使用“make”命令生成 “*.pem”的文件,由于“*.pem”文件中即含有私钥信息,又含有公钥信息,所以生成该文件后,还需要将该文件复制到“/etc/pki/tls/private”目录中。操作如下图22、图23所示:

图片

22

图片

23

最后需要在 “/etc/httpd/conf.d/ssl.conf”文件中指定公钥文件名称与私钥文件名称,所以本例中使用vim 编辑 /etc/httpd/conf.d/ssl.conf文件,如下图24所示:

图片

24

/etc/httpd/conf.d/ssl.conf”文件中找到 "DocumentRoot""ServerName"行,将该行前的"#"号去掉,并设置需要保护的网站主目录位置,以及设置需要保护的域名。本例中,如下图25所示:

图片

25

然后在该文件中找到SSLCertficateFile行设置公钥文件的路径及名称;找到SSLCertificateKeyFile行设置私钥文件的路径及名称。本例中如下图26所示:

图片

26

在客户端测试打开IE浏览器,输入https://域名 访问web服务器,进行测试。本例中如下图27所示:

图片

27

(2) 生成公钥文件与私钥文件的第二种方法:即使用“make”命令生成“*.key”的文件(私钥文件),但生成该私钥文件时需要设置密码,该密码会影响apache的启动(即在启动apache时必须输入密码),所以生成该私钥文件后,还需要使用“openssl rsa -in *.key -out *.key”命令将该私钥文件进行转换即可解决该问题。本例中如下图28所示:

图片

28

生成私钥文件(*.key)之后,就可以使用“make”命令生成“*.crt”的公钥文件。本例中如下图29、图30所示:

图片

29

图片

30

将私钥文件移动到“/etc/pki/tls/private”目录中,如下图31所示:

图片

31

编辑SSL的配置文件/etc/httpd/conf.d/ssl.conf,如下图32所示:

图片

32

/etc/httpd/conf.d/ssl.conf 文件中 找到 "DocumentRoot" 行与"ServerName " 行,分别设置需要使用SSL保护的网站主目录及域名。本例中如下图33所示:

图片

33

并找到 "SSLCertificateFile"行设置公钥文件的路径及名称,找到"SSLCertificateKeyFile"行设置私钥文件的路径及名称。本例中如下图34所示:

图片

34

最后在客户端打开浏览器进行测试。

七、关于iptables防火墙的设置

由于 apache服务使用tcp协议的80端口,所以只要在iptables中开放tcp80端口即可。本例中方法如下图35所示:

图片

35

关于apacheSSL功能是使用tcp443端口,如果需要开放该端口可以输入以下命令:

iptables -I INPUT -p tcp --dport 443 -j ACCEPT

 

关于apache的其它身份验证方法以及其它使用方法,由于时间关系,在此本人不再嗷述。如果您有不同看法或问题请与我联系。(另:有许多朋友对apache的设置内容已经期待已久,但由于这段时间工作太忙,望大家谅解。工作之余,匆忙之中写本篇日志,如有漏洞或不妥之处,望大家海涵)

流星:caiyuanji (at) 163.com  QQ:85104942

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值