http 实战练习

建立httpd服务器,要求提供两个基于名称的虚拟主机:

(1)www.X.com,页面文件目录为/web/vhosts/x;错误日志为/var/log/httpd/x.err,访问日志为/var/log/httpd/x.access

(2)www.Y.com,页面文件目录为/web/vhosts/y;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/y.access

(3)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名

(4)通过www.X.com/server-status输出httpd工作状态相关信息

#增加两条HOST 解析
vim /etc/hosts
192.168.120.130 www.x.com www.y.com vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.x.com
#指定根目录
DocumentRoot "/web/vhosts/x"
#错误日志
ErrorLog "logs/x.err"
#访问日志
TransferLog "logs/x.access"
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168
</Location>
</VirtualHost> <VirtualHost *:80>
#虚拟主机的别名;可多次使用,目前是不起作用的
ServerName www.y.com
#指定根目录
DocumentRoot "/web/vhosts/y"
#错误日志
ErrorLog "logs/www2.err"
#访问日志
TransferLog "logs/y.access"
</VirtualHost> <Directory "/web/vhosts">
Order allow,deny
Allow from all
</Directory> 如果是Centos6 一定要把主配置文件中的NameVirtualHost 打开,或者在这个配置文件中加上以下配置
NameVirtualHost *:80
否则无法启动虚拟主机!!!!

2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点

(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Beijing)、城市(Beijing)和组织(MageEdu)

(2)设置部门为Ops,主机名为www.Y.com,邮件为admin@Y.com

省略步骤 参考 http 高级配置 笔记中的步骤
注意:ssl会话只能基于IP创建,这意味着如果服务器仅有一个IP,那么仅为一个虚拟主机提供https服务

编译安装httpd-2.4 使用httpd-2.4实现

1、建立httpd服务,要求:

(1) 提供两个基于名称的虚拟主机:

www.a.com

页面文件目录为/web/vhosts/www1

错误日志为/var/log/httpd/www1/error_log

访问日志为/var/log/httpd/www1/access_log

www.b.com
页面文件目录为/web/vhosts/www2
错误日志为/var/log/httpd/www2/error_log
访问日志为/var/log/httpd/www2/access_log

(2) 通过www.a.com/server-status输出其状态信息,且要求只允许提供账号的用户访问

(3) www.a.com不允许192.168.1.0/24网络中的主机访问

编译安装httpd-2.4

#一次性编译安装 apr  + apr-util + http 不需要分三次来
#把三个压缩包都解压了 yum groupinstall Development Tools,Server yum install openssl-devel expat-devel pcre-devel useradd -r -g 80 apache
useradd -r -s /sbin/nologin -u 80 -g 80 apache tar xvg apr apr-util httpd mv apr-1.6.3 http/srclib/apr
mv apr-util-1.6.1 http/srclib/apr-util cd httpd-2.4.27/
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork make && make install #添加变量
echo PATH=/app/httpd24/bin:$PATH > /etc/profile.d/httpd.sh #启动服务
apachectl

设置虚拟主机

#创建验证文件
htpasswd -s -c .httpuser ddz
htpasswd -s .httpuser wang #虚拟主机设置
vim /app1/httpd24/conf/http.conf
Include conf/conf.d/*.conf vim /app1/httpd24/conf/conf.d/vhost.conf
<VirtualHost *:80>
ServerName www.a.com
DocumentRoot "/web/vhosts/www1"
ErrorLog "/var/log/httpd/www1/error_log"
TransferLog "/var/log/httpd/www1/access_log"
<Location /server-status>
SetHandler server-status
AuthType Basic
AuthName "Please Input Accout!!!"
AuthUserFile "/appl/httpd24/conf/conf.d/.httpuser"
Require user ddz,wang
</Location>
<Directory "/web/vhosts/www1">
<RequireAll>
Require all granted
Require not ip 192.168.1.
</RequireAll>
</Directory>
</VirtualHost> <VirtualHost *:80>
ServerName www.b.com
DocumentRoot "/web/vhosts/www2"
ErrorLog "/var/log/httpd/www2/error_log"
TransferLog "/var/log/httpd/www2/access_log"
</VirtualHost>

2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点

(1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(MageEdu)

(2) 设置部门为Ops, 主机名为www.b.com

 如果是编译安装,安装完模块,需要移动配置文件
yum install mod_ssl cp /etc/httpd/conf.d/ssl.conf /appl/httpd24/conf/conf.d/ssl.conf 开启模块
vim httpd.conf
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 配置SSL文件 <VirtualHost 192.168.120.131:443>
DocumentRoot "/web/vhosts/www1"
ServerName www.a.com SSLCertificateFile /appl/httpd24/certs/httpd.crt
SSLCertificateKeyFile /appl/httpd24/certs/httpd.key
SSLCertificateChainFile /etc/pki/CA/cacert.pem 使用了https的话,记得把刚才vhost里面的虚拟主机配置移动到ssl中,否则无法识别。
ssl 是可以配置多个的

http 实战练习的更多相关文章

  1. SSH实战 · 唯唯乐购项目(上)

    前台需求分析 一:用户模块 注册 前台JS校验 使用AJAX完成对用户名(邮箱)的异步校验 后台Struts2校验 验证码 发送激活邮件 将用户信息存入到数据库 激活 点击激活邮件中的链接完成激活 根 ...

  2. GitHub实战系列汇总篇

    基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...

  3. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  4. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  5. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  6. asp.net core 实战之 redis 负载均衡和"高可用"实现

    1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的"高可用"实现, 呵呵双引号的"高可用"并不是 ...

  7. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

  8. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  9. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  10. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

随机推荐

  1. LeetCode 232 Implement Queue using Stacks 两个栈实现队列

    class MyQueue { public: /** Initialize your data structure here. */ MyQueue() { } /** Push element x ...

  2. Java文件与io——装饰者模式

    意图: 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比于生成子类更为灵活.该模式以对客户端透明的方式扩展对象的功能. 适用环境 在不影响其他对象的情况下,以动态.透明的 ...

  3. EF增删查改加执行存储过程和sql语句,多种方法汇总

    ActionUrl c = new ActionUrl() { ActionName="test", RequestUrl="/123/123", SubTim ...

  4. OS进程同步与通信

    信号量机制 信号量用于互斥 P(S) 临界区 V(S) ----- P(S) 临界区 V(S) 生产者消费者: typedef int semaphore //信号量值设置为1就是互斥量 semaph ...

  5. java 基础 02 数据类型、运算符、分支结构

    内容: (1)数据类型 (2)运算符 (3)分支结构 1.数据类型 java语言中的基本数据类型:byte.short.int.long.float.double.boolean.char. 1.1布 ...

  6. Vue通过状态为页面切换添加loading、为ajax加载添加loading

    以下方法需要引入vuex,另使用了vux的UI框架,ajax添加loading还引入了axios. 一.为页面切换添加loading. loading.js: import Vue from 'vue ...

  7. Android 浮动按钮的伸缩效果

    在做项目时想增加点动感,于是就有如下效果: 实现起来也很简单,通过属性动画和recyclerview 滑动结合就很好实现了. 通过给recycleview添加一个滑动监听:通过滚动的差值来处理动画 m ...

  8. tf warning等级

    from:http://blog.csdn.net/tsinghuahui/article/details/72938764 tf讨厌的warning 2017-08-03 10:02:52.0990 ...

  9. [Git] Create a new repository on the command line

    echo "# xxx" >> README.md git init git add README.md git commit -m "first commi ...

  10. 基于PowerShell的Lync Server管理 使用C#

    这里所说的Lync Server管理,指通过C#管理Lync账号的启用,禁用,开启账户的语音功能. Lync服务器安装后,会自动创建一个用于远程管理的应用程序,通过IIS查看,其应用程序名为: Lyn ...