Web基础之httpd服务搭建(一)

实验需求

(1)使用httpd-2.2搭建httpd服务;

(2)建立两个基于FQDN的虚拟主机www1,www2;要求有单独的错误日志和访问日志;

(3)通过www1的/server-status提供状态信息,且仅允许用户tom访问;

(4)www2设置禁止192.168.0.0/24网络中任意主机访问;

(5)为www2主机提供https服务;

实验过程

httpd-2.4环境

准备工作:

1、确保httpd服务已正确安装。

# rpm -qa httpd
httpd-2.2.15-45.el6.centos.x86_64

2、httpd-2.2的基础配置文件

/etc/httpd/conf/httpd.conf :主配置文件

/etc/httpd/conf.d/*.conf

logs:日志文件

modules:模块文件

3、CentOS 6.7系统,IP地址为172.16.252.55

4、准备一台服务器创建私有CA,并为虚拟主机签署CA

实验过程:

1、创建虚拟主机www1,www2

首先编辑主配置文件/etc/httpd/conf/httpd.conf,启用NameVirtualHost

   # vim /etc/httpd/conf/httpd.conf
     
     NameVirtualHost 172.16.252.55:80

在/etc/httpd/conf.d/目录下分别创建www1.conf,www2.conf,并进行编辑

# vim www1.conf
<VirtualHost 172.16.252.55:80>
                ServerName www1.magedu.com
                DocumentRoot /data/vhosts/www1             #指定DocumentRoot
                Customlog logs/www1-access_log combined    #访问日志
                ErrorLog  logs/www1-error_log              #错误日志
</VirtualHost>
# vim www2.conf
<VirtualHost 172.16.252.55:80>
                ServerName www2.magedu.com
                DocumentRoot /data/vhosts/www2
                Customlog logs/www2-access_log combined
                ErrorLog  logs/www2-error_log
</VirtualHost>

分别为www1,www2 创建DocumentRoot目录,并在目录下创建index.html测试页。

# mkdir -p /data/vhosts/www{1,2}
www1]# echo "www1.magedu.com" >> index.html
www2]# echo "www2.magedu.com" >> index.html

使用httpd -t命令检查配置文件格式是否正确,然后启动httpd服务

# httpd -t
Syntax OK
# service httpd start

分别访问www1.magedu.com,www2.magedu.com测试虚拟主机是否成功。

# curl www1.magedu.com
www1.magedu.com
# curl www2.magedu.com
www2.magedu.com

2、配置www1的/server-status提供状态信息,且至允许tom访问;

首先检查是否加载了status_module模块

#httpd -M |grep status_module 
status_module (shared)
Syntax OK

备注:LoadModule  status_module  modules/mod_status.so  /etc/httpd/conf/httpd.conf

确认加载了status_module模块后,在www1.conf中添加如下配置:

<VirtualHost 172.16.252.55:80>
                ServerName www1.magedu.com
                DocumentRoot /data/vhosts/www1
                Customlog logs/www1-access_log combined
                ErrorLog  logs/www1-error_log
        <Location /server-status>                     #server-status状态信息 
                SetHandler server-status
                Order allow,deny
                Allow from 172.16                     #该状态信息只允许172.16网段主机访问
        </Location>
        <Directory "/data/vhosts/www1">                #用户认证,只允许tom访问
                Options None
                AllowOverride None
                AuthType Basic                         #认证类型
                AuthName "Auth for www1"               
                AuthUserFile "/data/vhosts/www1/.htpasswd"  #认证文件路径
                Require user "tom"                          #指定可访问用户
        </Directory>
        
</VirtualHost>

使用htpasswd生成用户认证文件

# htpasswd -c -m /data/vhosts/www1/.htpasswd tom

使用httpd -t 检查配置文件无误后,重新加载httpd

# service httpd reload

通过浏览器访问www1.magedu.com/server-status 测试状态信息及认证用户是否生效

3、配置www2虚拟主机配置文件www2.conf,实现禁止192.168.0.0/24网段访问

<VirtualHost 172.16.252.55:80>
                ServerName www2.magedu.com
                DocumentRoot /data/vhosts/www2
                Customlog logs/www2-access_log combined
                ErrorLog  logs/www2-error_log
        <Directory /data/vhosts/www2>
                order deny,allow        
                deny from 172.16.251.229
        #       allow from all
        </Directory>
                </VirtualHost>

编辑完成后使用httpd -t检查无误重新加载httpd服务

4、为www2提供https服务

首先创建一个私有CA并通过私有CA为服务器颁发证书,过程如下:

# cd /etc/pki/CA/
# touch index.txt
# echo "01" > serial
 
# (umask 066;openssl genrsa -out private/cakey.pem)
Generating RSA private key, 1024 bit long modulus
............++++++
............................................................++++++
e is 65537 (0x10001)
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem #自签

私有CA创建完成,在www2所在服务器创建证书签署请求,并通过以上CA服务器签证

# mkdir /etc/httpd/ssl
# (umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key)
Generating RSA private key, 1024 bit long modulus
................++++++
.++++++
e is 65537 (0x10001)
# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr #创建证书签署请求
# scp /etc/httpd/ssl/httpd.csr 172.16.251.229:/tmp/  #将请求发往CA认证服务器进行签证

CA服务器对以上请求进行CA签证

# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt
# scp /etc/pki/CA/certs/httpd.crt 172.16.252.55:/etc/httpd/ssl/

CA签证成功后,配置httpd支持使用ssl,及使用的证书

安装mod_ssl模块

# yum -y install mod_ssl

编辑配置文件/etc/httpd/conf.d/ssl.conf

  #DocumentRoot "/datdata/vhosts/www2"   //指定www2虚拟主机的DocumentRoot
      #ServerName www2.magedu.com:443
      #SSLCertificateFile /etc/httpd/ssl/httpd.crt   //CA证书url
      #SSLCertificateKeyFile /etc/httpd/ssl/httpd.key    //私钥文件路径

重启httpd服务

5、测试基于https访问主机,返回OK即成功

# openssl s_client -connect 172.16.252.54:443 -CAfile /etc/pki/CA/cacert.pem 
  
    Start Time: 1468637497
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
时间: 2024-08-05 11:15:10

Web基础之httpd服务搭建(一)的相关文章

CentOS 7 中httpd服务构建虚拟Web主机详解

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每个站点实际并不独立占用整个服务器,因此被称为"虚拟"Web主机.通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本. 使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能同事支撑大量的Web站点. httpd服务支持的虚拟主机类型包括以下三种: 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的: 基于IP地址:为每个虚拟主机使用不同的域名,

web 服务搭建

Web 网站服务(一) 一:实验案例 构建httpd网站服务器 1:配置IP地址为192.168.1.1 2:安装httpd服务器 首先需要确认本服务器是否有使用rpm方式安装httpd服务,可以利用命令:rpm -q httpd查询. 3:为了避免发生端口冲突,可以卸载rpm方式安装的httpd 4:挂载web镜像 5:使用mount命令挂载web镜像到/media/目录 并且将httpd源码包解压到/usr/src/目录下,切换到展开的源码目录中 6:接下面是配置 配置可以根据生产环境实际需

Linux之Web服务(2)Httpd服务配置之一

Linux之Web服务(2)Httpd服务配置之一 Apache HTTP Server Apache HTTP 服务器,简称Apache,是非常留下的Web服务器软件.通常和脚步语言比如PHP,数据库MySQL一起工作,合成为LAMP栈(Linux, Apache, MySQL, PHP). 当然流行的Web服务器还有nigix,但是nigix虽然轻量级很稳定,但是功能并不如Apache HTTP功能丰富,并且现在的Apache HTTP还支持模块化功能,及可以开发自己的功能模块并加入到此We

Linux之Web服务(2)Httpd服务配置之四

Linux之Web服务(2)Httpd服务配置之四 前言 接上一篇的虚拟主机,本片主要介绍虚拟主机的一些搭建和部署,本篇通过一个具体的案例来显示虚拟主机的作用和特性. 案例功能介绍: (1) 准备DNS解析3个域名或者添加/etc/hostst/3条主机名IP档案,解决域名解析 (2) 基于主机名实现三个虚拟主机 (3) 每虚拟主机使用独立的访问日志和错误日志 (4) 在第二个虚拟主机上提供/status: (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径: (6) 第三个虚拟

linux架构学习第二十六天之web服务搭建(apache)以及https的实现

内容: 1.httpd版本以及安装 2.httpd的配置文件详解 3.httpd的用户身份验证实现 4.httpd的虚拟主机的实现 5.https的通信过程以及实现演示 1.httpd版本以及安装 centos默认的httpd版本是2.2,而centos默认的httpd版本是2.4,这里演示的是centos6的httpd-2.2版本 安装的方式有两种,一个是rpm包安装,一个是编译安装,编译安装相关的配置文件需要手动设置,这里演示的是rpm包安装 httpd2.2和2.4的区别: 2.2的MPM

Apache Httpd服务器之基础

Httpd服务器是Apache产品线下的一款web服务器,常与PHP或Python等CGI脚本一起配合使用,为用户提供动态Web服务.httpd,从名字就可以看出,它提供的主要是基于http协议的Web服务.本篇为介绍Httpd服务器的第一篇,主要介绍下Httpd服务器的安装,运行模式,容器配置,以及CGI的配置,目的是使大家能通过阅读此篇文章来从零建立起一个可运行的Web服务器.    Httpd从哪下载?请访问http://httpd.apache.org/download.cgi,这里就有

Web基本服务搭建和访问控制

Web服务的基本搭建和访问控制 环境: web: [[email protected] ~]# ifconfig | head -2 eth0 Link encap:Ethernet HWaddr 52:54:01:AC:DE:C4 inet addr:192.168.122.10 Bcast:192.168.122.255 Mask:255.255.255.0 [[email protected]_1 ~]# yum -y install httpd NDS: Link encap:Ether

服务搭建基础篇 &nbsp; &nbsp; dhcp服务 &nbsp; &nbsp;

Server :  redhat 7.2     (192.1681.144) Clien :   redhat 6.8      (192.168.1.120) 未配置之前设置静态ip 网卡设置都为自定义vm1  (防止外部干扰) 服务器端下载dhcp安装包 确定server与client   通信 Client  网卡设置为dhcp 修改服务器端/etc/dhcp/dhcpd.conf 开启dhcpd服务 客户端client重启网卡获取到新的ip 绑定某一网卡.未特定主机私定ip 重启服务

Linux之Web服务(2)Httpd服务配置之二

Linux之Web服务(2)Httpd服务配置之二 前言 在上一篇通过一些简单的案例或说明来介绍了部分关于Httpd2.4中httpd.conf配置文件中的配置选项及对应的功能.主要是对访问控制和在处理对指定目录或文件进行访问控制的一些安全问题性的处理.但是一直没有提到访问控制的具体讲解,本篇列出访问控制的具体使用选项和功能,以及其它高级配置. 1.Httpd2.4 文档访问授权具体参数 前提:文档访问授权选项配置只适合在以下标签中生效: <Directory >  <FIles>