十二.虚拟Web主机
***********************
修改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主机的更多相关文章
- Apache的权限设置与构建虚拟web主机
实验拓扑图: 实验要求: 1. 搭建WEB服务器,能访问默认站点,并使用awstats软件能监控到默认站点的访问情况. 2. 修改Apache的主配置文件,设置1.10只能访问awstats网站, ...
- 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点
一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...
- Apache虚拟web主机构建
目录 一.构建虚拟web主机 1.1.虚拟web主机概述 二.搭建虚拟web主机步骤 2.1.基于域名搭建虚拟主机 ①为虚拟主机提供域名解析 ②为虚拟主机准备网页文档 ③添加虚拟主机配置 ④设置访问路 ...
- (3)虚拟Web主机
虚拟Web主机 作用:让一台Web服务器,提供多个页面 搭建方式: 1.基于域名的虚拟Web 2.基于端口的虚拟Web 3.基于IP地址的虚拟Web ######################### ...
- odoo10学习笔记十二:web controller
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189332.html 一:路由 odoo.http.route(route=None, **kw) 装饰器 ...
- (十二) web服务与javaweb结合(3)
一.需求 上一章节虽然将webservice和web项目绑定在了一起,但是还是不能共同一个端口,本章讲解webservice和web项目绑定且共同端口. 二.案例 2.1 创建web工程,并引入依赖 ...
- 第十二章 WEB渗透
Web技术发展 • 静态WEB• 动态WEB • 应用程序 • 数据库 • 每个人看到的内容不同 • 根据用户输入返回不同结果 WEB攻击面• Network• OS• WEB Server• App ...
- 创建dynamics CRM client-side (十二) - HTML Web Resource
HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在tex ...
- 三十二:WEB漏洞-文件操作之文件下载读取全解
文件下载读取 原路,检测,利用,修复 利用 数据库配置文件下载或者读取后续 接口密钥信息文件下载或者读取后续 文件名,参数值,目录符号 read.xxx?filename= down.xxx?file ...
随机推荐
- TCP/IP协议图--TCP/IP基础
1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议.实际生活当中有时也确实就是指这两种协议.然而在很多情况下,它只是利用 IP 进行通信时所 ...
- 软件包 javax.naming了解
Context 此接口表示一个命名上下文,它由一组名称到对象的绑定组成. Name Name 接口表示一个一般名称,即一个有序的组件序列. NameParser 此接口用于解析取自分层的名称空间 ...
- ALV报表——表头实现
ABAP实现ALV表头的DEMO: 运行效果: 代码: *********************************************************************** ...
- Scratch编程:绘制七色花(七)
“ 上节课的内容全部掌握了吗?反复练习了没有,编程最好的学习方法就是练习.练习.再练习.一定要记得多动手.多动脑筋哦~~” 01 — 游戏介绍 绘制一朵美丽的七色花. 02 — 设计思路 使用画笔功能 ...
- mysql全面整理(用于复习、查阅)--正在更新
Mysql学习 1. 关键字与函数名称全部大写 2. 数据库名称.表名称.字段名称全部小写 3. SQL语句必须以分号结尾 一.数据库基本操作 1. 创建.查看数据库 CREATE {DATABASE ...
- vue npm run build 失败
之前删除过 node-moudel 文件夹,然后 npm install 重新安装,一切OK.打包的时候,报错,找不到caniuse什么的.再删除node-moudel,重新cnpm install ...
- 持久化存储之 PV、PVC、StorageClass
PV介绍: PersistentVolume(PV)是群集中由管理员配置的一块存储. 它是集群中的资源,就像节点是集群资源一样. PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个 ...
- 在论坛中出现的比较难的sql问题:15(生成动态删除列语句 分组内多行转为多列)
原文:在论坛中出现的比较难的sql问题:15(生成动态删除列语句 分组内多行转为多列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.如果去掉这个临时表中合计为0 ...
- dapper 参数不定时用这种方法动态参数
string where = null; var p = new DynamicParameters(); if (classId != null) { where = " and clas ...
- Psychedelic therapy
Psychedelic therapy Psychedelic therapy早期在美国应该取得了相当大的成功,方法是在给予受试者充分的心理准备后,一次性运用极高剂量的LSD(0.3−0.6毫克),试 ...