Httpd部分高级应用配置

前文介绍了httpd的基本配置,本文介绍部分高级应用的配置。

实验前提:

关闭防火墙和SELinux;

关闭中心主机。

实验环境:

服务器:

系统版本:CentOS6.6 x86_64;

服务软件版本:httpd2.2,CentOS 6.6镜像提供rpm包;

客户端:

系统版本:Windows7x86_64;

浏览器:Chrone44;

域名解析:由本地Hosts文件实现,不再配置DNS服务器(详情见博客内DNS相关文章);

一、虚拟主机;

1、基于端口的虚拟主机;

站点A:

FQDN:www.chencer.org

端口:80

站点文件:/web/www/index.html

站点B:

FQDN:www.chencer.org

端口:8080

站点文件:/web/port/index.html

实验配置:

主配置文件

# vim /etc/httpd/conf/httpd.conf
> Listen 80
> Listen 8080
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot"/web/www"
> </VirtualHost>
>
> <VirtualHost192.168.1.10:8080>
>     ServerName www.chencer.org
>     DocumentRoot"/web/port"
> </VirtualHost>

提供网页文件:

# mkdir -p /web/{www,port}
# echo "www.chencer.org:80" > /web/www/index.html
# echo "www.chencer.org:8080" > /web/port/index.html

检查配置文件语法,重启服务,查看监听端口:

# httpd –t
# service httpd restart
# ss –tnl |grep :80

80/tcp和8080/tcp被监听:

客户端测试:

Hosts文件添加解析记录:

站点A:

站点B:

2、基于IP的虚拟主机;

站点A:

FQDN:www.chencer.org

IP:192.168.1.10

站点文件:/web/www/index.html

站点B:

FQDN:bbs.chencer.org

IP:192.168.1.11

站点文件:/web/bbs/index.html

实验配置:

主配置文件:

> # vim /etc/httpd/conf/httpd.conf
> <VirtualHost 192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot "/web/www"
> </VirtualHost>
>
> <VirtualHost 192.168.1.11:80>
>     ServerName bbs.chencer.org
>     DocumentRoot "/web/bbs"
> </VirtualHost>

提网页文件:

# mkdir -p /web/{www,bbs}
# echo "www.chencer.org" > /web/www/index.html
# echo "bbs.chencer.org" > /web/bbs/index.html

检查配置文件语法,重启服务:

# httpd –t
# service httpd restart

客户端测试:

Hosts文件添加解析记录:

站点A:

站点B:

3、基于主机名的虚拟主机;

站点A:

FQDN:www.chencer.org

站点文件:/web/www/index.html

站点B:

FQDN:blog.chencer.org

站点文件:/web/blog/index.html

实验配置:

主配置文件:

> # vim/etc/httpd/conf/httpd.conf
> NameVirtualHost192.168.1.10:80
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot "/web/www"
> </VirtualHost>
> 
> <VirtualHost192.168.1.10:80>
>     ServerName blog.chencer.org
>     DocumentRoot "/web/blog"
></VirtualHost>

提网页文件:

# mkdir -p /web/{www,blog}
# echo "www.chencer.org" > /web/www/index.html
# echo "blog.chencer.org" > /web/blog/index.html

检查配置文件语法,重启服务:

# httpd –t
# service httpd restart

客户端测试:

Hosts文件添加解析记录:

A主机:

B主机:

二、基于用户的访问控制;

用户认证:

基本认证:Basic

摘要认证:Digest

虚拟用户:仅用于访问某服务或获取某资源的凭证;

文本文件:*.htpasswd

SQL数据库

dbm:数据库引擎,提供API

ldap:

authenticationprovider:账号和密码的存储机制;

authn

authorizationprovider: 授权

# htpasswd:
    -c:如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用;
    -m:以md5的格式编码存储用户的密码信息;
    -D:删除指定用户;

实例:

站点A;

FQDN:www.chencer.org/admin

允许用户jim和tom访问;

站点B;

FQDN:ops.chencer.org/admin

仅允许ops组访问,jim属于ops组;

实验配置:

主配置文件:

# vim/etc/httpd/conf/httpd.conf
> NameVirtualHost192.168.1.10:80
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot /web/www
> <Directory"/web/www/admin">
>     Options none
>     AllowOverride AuthConfig
>     AuthType Basic    //认证类型为基本认证;
>     AuthName " Admin Area."    //质疑提示信息;
>     AuthUserFile /etc/httpd/conf/.htpasswd    //认证文件位置;
>     Require valid-user
> </Directory>
> </VirtualHost>
> 
> <VirtualHost192.168.1.10:80>
>     ServerName ops.chencer.org
>     DocumentRoot /web/ops
> <Directory"/web/ops/admin">
>     Options none
>     AllowOverride AuthConfig
>     AuthType Basic
>     AuthName " Admin Area."
>     AuthUserFile /etc/httpd/conf/.htpasswd
>     AuthGroupFile /etc/httpd/conf/.htgroup
>     Require group ops
> </Directory>
> </VirtualHost>

生成认证文件:

创建用户:

# htpasswd -mc /etc/httpd/conf/.htpasswd jim
# htpasswd -m /etc/httpd/conf/.htpasswd tom

jim加入ops组:

# echo "ops: jim " > /etc/httpd/conf/.htgroup

提供网页文件:

# mkdir -p /web/{www,ops}/admin
# echo "www.chencer.org/admin" > /web/www/admin/index.html
# echo "ops.chencer.org/admin" > /web/ops/admin/index.html

检查配置文件语法,重启服务;

# httpd –t
# service httpd restart

客户端测试:

Hosts文件添加解析记录:

jim访问站点A:

jim访问站点B:

tom访问站点A:

tom访问站点B:

三、Https;

httpd:

ssl模块:mod_ssl,单独成包

ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话;

ssl握手要完成的工作:

交换协议版本号

选择双方都支持的加密方式

客户端对服务器端实现身份验正

密钥交换

https协议:基于SSL二进制编码,443/tcp

openssl s_client

客户端验正服务器端证书:

有效性检测:证书是否仍然在有效期内

CA的可信度检测

证书的完整性检测

持有者的身份检测

实例:

站点:www.chencer.org提供https服务;

安装mod_ssl模块:

# yuminstall mod_ssl
# rpm –ql mod_ssl

# /etc/httpd/conf.d/ssl.conf    :mod_ssl配置文件;

服务器自建CA,自签证书(详细信息见自建CA博客):

# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
# touch /etc/pki/CA/{index.txt,serial}
# echo 01 > /etc/pki/CA/serial

创建证书,签署请求;

# (umask 077 ; openssl genrsa -out /etc/httpd/httpd.key 2048)
# openssl req -new -key/etc/httpd/httpd.key -out /etc/httpd/httpd.csr
# openssl ca -in/etc/httpd/httpd.csr -out /etc/httpd/httpd.crt -days 3650

配置mod_ssl模块配置文件:

# vim/etc/httpd/conf.d/ssl.conf
DocumentRoot "/web/www"
ServerName www.chencer.org:443
SSLCertificateFile /etc/httpd/httpd.crt
SSLCertificateKeyFile /etc/httpd/httpd.key

提供网页文件:

# mkdir -p /web/www
# echo "https:www.chencer.org:443" > /web/www/index.html

检查配置文件语法,重启服务,查看监听端口;

# httpd –t
# service httpd restart
# ss –tnl | grep :443

客户端访问测试:

下载安装CA证书,cacert.pem重命名为cacert.crt:

访问站点:

时间: 2024-10-29 19:12:06

Httpd部分高级应用配置的相关文章

linux 笔记 3-2.高级网络配置

**********2.高级网络配置***********目标:配置网络桥接配置 bond 网络接口配置 team 网络接口 ##1.配置网络桥接##网络桥接用网络桥实现共享上网主机和客户机除了利用软件外,还可以用系统自带的网络桥建立连接用双网卡的机器做主机 真机配置 vim /etc/sysconfig/network-scripts/ifcfg-westos   vim /etc/sysconfig/network-scripts/ifcfg-br0   先关掉NetworkManager服

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

Docker Network Configuration 高级网络配置

Network Configuration TL;DR When Docker starts, it creates a virtual interface named docker0 on the host machine. It randomly chooses an address and subnet from the private range defined by RFC 1918 that are not in use on the host machine, and assign

Centos 6 apache httpd 2.2 主要配置详解( 一 )

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Server version: Apache/2.2.15 (Unix) 模块文件路径: /etc/httpd/modules /usr/lib64/httpd/modules 主程序文件: /usr/sbin/httpd /usr/sbin/httpd.work /usr/sbin/httpd.even 主进

Centos 6 apache httpd 2.4 主要配置详解

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Server version: Apache/2.4.29 (Unix) 新特性 ? MPM支持运行为DSO机制:以模块形式按需加载 ? event MPM生产环境可用 ? 异步读写机制 ? 支持每模块及每目录的单独日志级别定义 ? 每请求相关的专用配置 ? 增强版的表达式分析式 ? 毫秒级持久连接时长定义 ?

yii2.0高级框架配置时打开init.bat秒退的解决方法 (两种方法)

第一种: 这几天刚接触到yii2.0框架,在配置advanced版本时运行init.bat初始化文件时老是闪退: 用cmd运行该文件时显示:The OpenSSL PHP extension is required by Yii2.如下图所示: 搜索了很多资料,终于找到问题所在之处了,原来是php.ini中的extension=php_openssl.dll没有打开: 1.打开php.ini文件,如我的目录是D:\wamp\php\php.ini,搜索extension=php_openssl.

[译]Stairway to Integration Services Level 12 - 高级日志配置

介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实验之前我们更改一下 Precedence.dtsx SSIS 包的设置. 把 Precedence.dtsx SSIS 包的 DisableEventHandlers 属性改为True Figure 2 屏蔽内置日志   Disable Built-In Logging 首先我们要移除已经存在的日志

httpd服务的简单配置

大纲:  1.httpd服务的安装  2.主配置文件/etc/httpd/conf/httpd.conf常见选项简介  3.basic认证的实现  4.基于ip,port和FQDN的虚拟主机的实现  5.实现ssl加密的http服务  6.简单的压力测试  7.关于httpd2.2和httpd2.4之间的差异会贯穿在整篇文章中 一.安装httpd服务 [[email protected] ~]#yum -y install httpd  [[email protected] ~]# rpm -q

基于rpm包安装的httpd基础及基本配置

http:hyper text transfer protocol超文本传输协议 一.http简介 我们在浏览网页时,一定见过以html结尾的网页,这里html(hyper text mark language超文本标记语言)是一种编程语言,由html编写出来的文档即为超文本文档. 在早期,http只能传输超文本信息,而不能传输音视频等其他格式的文件,后来http协议中引入了MIME(mutipurpose Internet Mail Extesion)的机制,MIME可以将非文本文件编码成文本