***********************
修改apache默认的网页文件存放位置
]# mkdir /var/www/myweb
]# echo "I am MyWeb" > /var/www/myweb/index.html
]# vim /etc/httpd/conf/httpd.conf
DocumentRoot  "/var/www/myweb"
]# systemctl restart httpd
]# firefox 172.25.0.11
***********************
  作用:一台服务器可以提供多个Web站点
  一旦使用虚拟web主机功能,所有的站点都必须用虚拟web主机来实现

• 区分方式
– 基于域名的虚拟主机
– 基于端口的虚拟主机
– 基于IP地址的虚拟主机

• 为每个虚拟站点添加配置
  ServerName 此站点的DNS名称
  DocumentRoot 此站点的网页根目录

• 配置文件路径
– /etc/httpd/conf/httpd.conf  (主配置文件)
– /etc/httpd/conf.d/*.conf (调用配置文件)

目标
webapp0.example.com -> 企鹅
www0.example.com   
-> MyWeb
server0.example.com -> 百度

虚拟机Server0:
1.创建配置文件:
]# vim /etc/httpd/conf.d/nsd01.conf
<.VirtualHost  *:80>
    ServerName
webapp0.example.com
    DocumentRoot
/var/www/qq
<./VirtualHost>

<.VirtualHost  *:80>
    ServerName
www0.example.com
    DocumentRoot
/var/www/myweb
<./VirtualHost>

<.VirtualHost  *:80>
    ServerName
server0.example.com
    DocumentRoot
/var/www/baidu
<./VirtualHost>

可以添加访问规则:
<.Directory  "/webroot">
    Require all
granted
<./Directory>

<.Directory  "/webroot/private">
    Require ip
127.0.0.1  ::1  172.25.0.11
<./Directory>
2.创建对应网页文件夹
]# mkdir /var/www/qq  /var/www/baidu
/var/www/myweb
]# echo '企鹅' > /var/www/qq/index.html
]# echo '百度' > /var/www/baidu/index.html
]# echo 'MyWeb' > /var/www/qq/index.html
]# systemctl restart httpd
3.访问:
]# firefox www0.example.com
]# firefox webapp0.example.com
]# firefox server0.example.com

************************

访问控制:
只允许172.25.0.11访问server0.example.com站点的/var/www/myweb/private目录的网页

<.VirtualHost  *:80>
    ServerName
www0.example.com
    DocumentRoot
/var/www/myweb
<./VirtualHost>

]# mkdir /var/www/myweb/private
]# echo "I am private" > /var/www/myweb/private/index.html
]# vim /etc/httpd/conf.d/nsd01.conf
增加这段:
<.Directory  "/webroot/private">
    Require ip
127.0.0.1  ::1  172.25.0.11
<./Directory>
]# systemctl restart httpd

不同主机访问测试:
]# firefox server0.example.com/private

**************************

自定Web根目录
调整 Web 站点 http://server0.example.com 的网页
目录,要求如下: /webroot,作为此站点新的网页文件目录
]# mkdir /webroot
]# echo 'wo shi webroot' > /webroot/index.html
]# vim /etc/httpd/conf.d/nsd01.conf
...
<.VirtualHost  *:80>
    ServerName
server0.example.com
   
DocumentRoot  /webroot
<./VirtualHost>
...
]# systemctl restart httpd

SELinux的安全上下文(标签)
]# ls -Zd /var/www/  #查看安全上下文值
]# ls -Zd /webroot
]# chcon -R --reference=/var/www /webroot/
]# ls -Zd /webroot/
]# firefox server0.example.com #验证
**************************
部署动态网站

LAMP:Linux  Apache  MariaDB/MySQL
php/Python
    
LNMP:Linux  Nginx  MariaDB/MySQL
php/Python

静态网站的运行
• 服务端的原始网页 = 浏览器访问到的网页
– 由Web服务软件处理所有请求
– 文本(txt/html)、图片(jpg/png)等静态资源

动态网站的运行
• 服务端的原始网页 ≠ 浏览器访问到的网页
– 由Web服务软件接受请求,动态程序转后端模块处理
– PHP网页、Python网页、JSP网页......

为站点 webapp0.example.com 配置提供动态Web内容:
<.VirtualHost  *:80>
    ServerName
server0.example.com
    DocumentRoot
/var/www/baidu
<./VirtualHost>

1.下载动态页面到指定目录:
/var/www/baidu/webinfo.wsgi
]# ls
index.html  webinfo.wsgi
2.修改配置文件
]# vim /etc/httpd/conf.d/nsd01.conf
<.VirtualHost *:80>
    
ServerName webapp0.example.com
    
DocumentRoot /var/www/baidu
    
Alias /  /var/www/baidu/webinfo.wsgi
<./VirtualHost>
当用户访问到网页文件根目录时,进行跳转到webinfo.wsgi
3.重启查看:
]# systemctl restart httpd
]# firefox webapp0.example.com(看到的是源码)
4.安装mod_wsgi软件,专用于Python页面代码翻译
]# yum -y install mod_wsgi
5.修改配置文件
]# vim /etc/httpd/conf.d/nsd01.conf
<.VirtualHost *:80>
    
ServerName webapp0.example.com
    
DocumentRoot /var/www/baidu
    
WSGIScriptAlias / 
/var/www/baidu/webinfo.wsgi
<./VirtualHost>
]# systemctl restart httpd
]# firefox webapp0.example.com
6.此虚拟主机侦听在端口8909
Listen 8909
<.VirtualHost *:8909>
    
ServerName webapp0.example.com
    
DocumentRoot /var/www/baidu
    
WSGIScriptAlias / 
/var/www/baidu/webinfo.wsgi
<./VirtualHost>
SELinux非默认端口的开放:
]# semanage port -l | grep http 
#查看http允许开放端口(有8909)
]# semanage port -a -t http_port_t -p tcp 8909
  
-a:添加  
-t:类型   -p:协议
]# systemctl restart httpd
7.验证
]# firefox webapp0.example.com:8909
********************************

十二.虚拟Web主机的更多相关文章

  1. Apache的权限设置与构建虚拟web主机

    实验拓扑图: 实验要求: 1.  搭建WEB服务器,能访问默认站点,并使用awstats软件能监控到默认站点的访问情况. 2.  修改Apache的主配置文件,设置1.10只能访问awstats网站, ...

  2. 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点

    一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...

  3. Apache虚拟web主机构建

    目录 一.构建虚拟web主机 1.1.虚拟web主机概述 二.搭建虚拟web主机步骤 2.1.基于域名搭建虚拟主机 ①为虚拟主机提供域名解析 ②为虚拟主机准备网页文档 ③添加虚拟主机配置 ④设置访问路 ...

  4. (3)虚拟Web主机

    虚拟Web主机 作用:让一台Web服务器,提供多个页面 搭建方式: 1.基于域名的虚拟Web 2.基于端口的虚拟Web 3.基于IP地址的虚拟Web ######################### ...

  5. odoo10学习笔记十二:web controller

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189332.html 一:路由 odoo.http.route(route=None, **kw) 装饰器 ...

  6. (十二) web服务与javaweb结合(3)

    一.需求 上一章节虽然将webservice和web项目绑定在了一起,但是还是不能共同一个端口,本章讲解webservice和web项目绑定且共同端口. 二.案例 2.1 创建web工程,并引入依赖 ...

  7. 第十二章 WEB渗透

    Web技术发展 • 静态WEB• 动态WEB • 应用程序 • 数据库 • 每个人看到的内容不同 • 根据用户输入返回不同结果 WEB攻击面• Network• OS• WEB Server• App ...

  8. 创建dynamics CRM client-side (十二) - HTML Web Resource

    HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在tex ...

  9. 三十二:WEB漏洞-文件操作之文件下载读取全解

    文件下载读取 原路,检测,利用,修复 利用 数据库配置文件下载或者读取后续 接口密钥信息文件下载或者读取后续 文件名,参数值,目录符号 read.xxx?filename= down.xxx?file ...

随机推荐

  1. PAT甲级满分有感

    时间轴: 2017年,数据结构加入了我的课程清单. 2018年12月,我从网易云课堂下载了数据结构的所有课程视频(学校里没有网,只能离线看),开始一刷.一刷只看了视频,基本没有做题,看到AVL树的时候 ...

  2. C# 简单的区块链实现

    1.项目配置 首先新建一个 Asp.Net Core 项目,然后选择 Empty Project(空项目) 类型,建立完成后无需进行任何配置. 2.数据模型 这里我们来创建一个具体的区块数据模型,使用 ...

  3. NetLink通信原理研究、Netlink底层源码分析、以及基于Netlink_Connector套接字监控系统进程行为技术研究

    1. Netlink简介 0x1:基本概念 Netlink是一个灵活,高效的”内核-用户态“.”内核-内核“.”用户态-用户态“通信机制.通过将复杂的消息拷贝和消息通知机制封装在统一的socket a ...

  4. Vue响应式变化

    Vue有一个很方便的特性就是Vue的双向绑定,即响应式变化,在Vue2.X版本中,Vue响应式变化靠的是Object.defineProperty方法实现的,但是这个方法有个问题,就是对数组的支持不全 ...

  5. flutter从入门到精通三

    flutter可以通过一套代码运行在多个平台上,包括移动,web,桌面,嵌入式,但是在 Web 平台的支持尚未达到 Beta 阶段,请不要用在生产环节,在阅读文档时候,推荐大家阅读https://fl ...

  6. shell 学习笔记7-shell-函数

    一.函数 1.什么是shell函数 把相同程序段定义成函数,可以减少整个程序的代码量,提升开发效率 增加程序的可读性,易读性,提升管理效率 可以失效程序功能模块化,使程序具备可移植性 其实linux系 ...

  7. 数据库中间件之mycat读写分离

    mycat核心概念 逻辑库 mycat中定义.管理的数据库 逻辑表 逻辑库中包含的需分库分表存储的表 datanode 数据节点(分片节点),逻辑表分片的存放节点 datahost 数据主机(节点主机 ...

  8. C#操作Windows控制面板

    先介绍一下Windows控制面板的一些操作,再介绍如何用C#语言来操作控制面板. 1.如何快速打开控制面板中的项目: 运行输入(大小写不敏感) control system 打开系统信息 contro ...

  9. springboot之手动控制事务

    一.事务的重要性,相信在实际开发过程中,都有很深的了解了.但是存在一个问题我们经常在开发的时候一般情况下都是用的注解的方式来进行事务的控制,说白了基于spring的7种事务控制方式来进行事务的之间的协 ...

  10. shell 实战 -- 基于一个服务启动,关闭,状态检查的脚本

    功能说明: check:检查服务状态,在开启,关闭,状态检查时都会用到这个函数,所以封装起来放到最前面 start:开启服务 stop:关闭服务 fstop:强制关闭 status:检查服务状态 ru ...