部署并测试动态WSGI站点
部署并测试动态WSGI站点
5.1问题
本例要求为站点webapp0.example.com配置提供动态Web内容,要求如下:
此虚拟主机侦听在端口8909
测试网页从以下地址下载,不要作任何更改
http://classroom/pub/materials/webinfo.wsgi
从浏览器访问http://webapp0.example.com:8909可接收到动态生成的Web页面
此站点必须能被example.com域内的所有系统访问
5.2方案
为httpd增加对Python网页程序的支持,可以安装mod_wsgi模块。关于此模块的配置说明,建议参考软件包提供的readme文档。
在SELinux处于Enforcing模式时,若要开放非80、81等常规Web端口,需要调整SELinux保护策略。
5.3步骤
实现此案例需要按照如下步骤进行。
步骤一:部署动态网页文档
1)创建网页目录
[root@server0~]#mkdir /var/www/webapp0
2)部署webinfo.wsgi网页程序
[root@server0~]#cd /var/www/webapp0
[root@server0webapp0]#wget http://classroom/pub/materials/webinfo.wsgi
....
2016-11-27 01:52:26(16.0 MB/s)-‘webinfo.wsgi’saved[397/397]
[root@server0 webapp0]#cat webinfo.wsgi//检查下载文件
#!/usr/bin/env python
import time
....
步骤二:配置新的虚拟主机http://webapp0.example.com:8909/
1)安装mod_wsgi模块软件包
[root@server0~]#yum-y install mod_wsgi
....
2)为新虚拟主机建立配置
[root@server0~]#vim /etc/httpd/conf.d/02-webapp0.conf
Listen 8909
<VirtualHost*:8909>
DocumentRoot/var/www/webapp0
ServerName webapp0.example.com
WSGIScriptAlias//var/www/webapp0/webinfo.wsgi
</VirtualHost>
3)调整SELinux策略,允许Web服务使用8909端口
列出当前许可的Web端口:
[root@server0~]#semanage port-l|grep^http_port
http_port_t tcp 80,81,443,488,8008,8009,8443,9000
添加新的Web端口:
[root@server0~]#semanage port-a-t http_port_t-p tcp 8909
[root@server0~]#
确认配置结果:
[root@server0~]#semanage port-l|grep^http_port
http_port_t tcp 8909,80,81,443,488,8008,8009,8443,9000
4)重启系统服务httpd
[root@server0~]#systemctl restart httpd
[root@server0~]#netstat-antpu|grep httpd//确认已监听8909端口
tcp6 0 0:::443:::*LISTEN 2477/httpd
tcp6 0 0:::8909:::*LISTEN 2477/httpd
tcp6 0 0:::80:::*LISTEN 2477/httpd
步骤三:测试动态网页效果
使用elinks或firefox访问此动态站点http://webapp0.example.com:8909/。
多刷新访问几次,每次看到的是动态网页内容,内容并不固定。
[root@desktop0~]#elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now:1480184916.52//第1次访问
[root@desktop0~]#elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now:1480184919.21//第2次访问
[root@desktop0~]#elinks -dump http://webapp0.example.com:8909/
UNIX EPOCH time is now:1480184951.99//第3次访问
部署并测试动态WSGI站点的更多相关文章
- 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点
一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...
- LDAP-openldap服务部署和测试(YUM安装)
1. 概述2. 服务端部署过程2.1 软件包说明2.2 部署过程2.3 配置过程3. 测试4. 生成LDIF格式文件4.1 安装migrationtools工具4.2 用migrationtools生 ...
- Nagios图像绘制插件PNP4Nagios部署和测试
注:本篇博客Nagios版本Nagios-3.5.1 1. 概述2. 关于PNP4Nagios3. 部署PNP4Nagios3.1 下载PNP4Nagios3.2 编译安装3.3 目录文件说明4. 配 ...
- Munge服务部署和测试
1. 概述2. 下载3. 安装3.1 源码简要说明3.2 编译安装3.3 配置3.4 创建munge.key3.5 启动方式 1. 概述 munge是认证服务,用于生成和验证证书.应用于大规模的HPC ...
- 集群部署及测试SolrCloud-5
SolrCloud-5.2.1 集群部署及测试 一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主 ...
- slurm-16.05.3任务调度系统部署与测试(1)
1.概述2.同步节点时间3.下载并解压文件4.编译安装munge-0.5.125.配置munge6.编译安装slurm-16.05.37.配置slurm8.配置MySQL数据库环境9.启动slur ...
- 消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求:A系统向B系统发送一个业务处理请求,因为某些原因(断电.宕机..),B业务系统挂机了,A系统发起的请求处理失败:前端应用并发量过大, ...
- Akka-CQRS(5)- CQRS Writer Actor 部署和测试
上篇我们做了一个WriterActor的例子,主要目的是示范WriterActor如何作为集群分片用persistentActor特性及event-sourcing模式实现CQRS的写功能.既然是集群 ...
- redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
随机推荐
- redis实现数据库(一)
转:https://www.cnblogs.com/beiluowuzheng/p/9738159.html 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redis ...
- OPENGL图形渲染管线图解
OPENGL固定图形渲染管线可以粗略地认为由下面的阶段衔接而成: 顶点颜色,光照,材质三个输入在光栅化前控制绘制管线的操作.光照和材质不能单独使用.顶点颜色,光源颜色,材质颜色都有alpha值,它们的 ...
- 谈谈SQL优化
写SQL是学习数据库必须掌握的非常重要的技能之一.在学习过程当中,我们会尝试写各种各样满足需求的SQL语句.在实际项目中,优秀的SQL语句和普通的SQL语句的执行速度差别非常大.对于一个数据量很大的系 ...
- 一文带你解读:卷积神经网络自动判读胸部CT图像的机器学习原理
本文介绍了利用机器学习实现胸部CT扫描图像自动判读的任务,这对我来说是一个有趣的课题,因为它是我博士论文研究的重点.这篇文章的主要参考资料是我最近的预印本 “Machine-Learning-Base ...
- rimraf node_modules 突然不能用了 怀疑是yarn的问题,从环境变量将yarn删掉,能用了
rimraf node_modules 突然不能用了 怀疑是yarn的问题,从环境变量将yarn删掉,能用了
- react / config\webpack.config.js 编译后去掉map 减小体积 shouldUseSourceMap = false
react / config\webpack.config.js 编译后去掉map 减小体积 shouldUseSourceMap = false
- JavaScript 原型与继承
JavaScript 原型与继承 JavaScript 中函数原型是实现继承的基础.prototype.construct.原型链以及基于原型链的继承是面向对象的重要内容 prototype 原型即 ...
- 3.python正则匹配不到内容时消耗大量内存
遇到问题:正常情况获取的网页源码可以通过正则表达式快速匹配到内容,,但是如果出现问题,没有匹配到的内容,正则就会一直回溯,导致内存激增,一直循坏查找. 解决思路: 一.如果能够有特殊内容可以标记,满 ...
- Python之操作文件和目录
Python内置的os模块可以直接调用操作系统提供的接口函数. # coding=utf-8 # 在指定目录以及指定目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径 import o ...
- OFD电子证照模版制作工具使用说明
每一类电子证照都具有相同板式,不同的电子证照之间只是文字.图片的差异.生成电子证照常用的方式就是采用模版批量生成. 本软件可以方便的设计证照模版.服务端根据模版生成电子证照,不同种类的电子证照生成逻辑 ...