Ubuntu下在Apache中运行Keystone
最近一次从Github上更新Keystone的代码后,发现原来bin/keystone-all和bin/keystone-manage都不见了,取而代之的是keystone/cmd/目录下的all.py和manage.py两个python脚本.虽然在测试的virtualenv环境下仍然可以执行原来的命令,但是想试着在Apache中运行Keystone,毕竟这已经是社区力推的启动方式了.
我的系统是Ubuntu,安装了sysv-rc-conf来管理开机时启动的服务,包括Apache2, MySQL, RabbitMQ等:
# apt-get install -y sysv-rc-conf
要管理系统启动时加载的服务时只要输入 # sysv-rc-conf即可, 移动光标到对应运行级的括号内按空格就可以选择或者反选.
想要Apache加载Python服务器脚本,需要为Apache添加mod_wsgi模块,我比较喜欢简洁的方式,没有自己一步步配置,直接将其安装到Apache2中:
# apt-get install libapache2-mod-wsgi
接下来要告诉Apache每次启动的时候加载Keystone,先将Keystone源码repo中httpd/wsgi-keystone.conf复制到/etc/apache2/conf-available/
# cp /home/openstack/keystone/httpd/wsgi-keystone.conf /etc/apache2/conf-available
/etc/apache2/conf-available/
-->
这里/home/openstack/keystone是我克隆Keystone源码的位置,需要根据实际情况改动. Ubuntu上Apache2的配置目录为/etc/apache2/,CentOS等系统上为/etc/httpd/,需要根据情况改动.
接着在/etc/apache2/conf-enabled/目录中创建一个指向/etc/apache2/conf-available/wsgi-keystone.conf的同名软链接:
# cd /etc/apache2/conf-enabled/
# ln -s /etc/apache2/conf-available/wsgi-keystone.conf wsgi-keystone.conf
然后根据需要修改/etc/apache2/conf-available/wsgi-keystone.conf文件
Listen 5000
Listen 35357 <VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /var/www/cgi-bin/keystone/main
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
</VirtualHost> <VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
</VirtualHost>
在WSGIDaemonProcess中设置启动Keystone服务器的进程数,线程数,启动服务器的用户等, 这些值需要根据具体的环境进行修改;\
在WSGIScriptAlias处设置启动脚本的位置, 如果指定/var/www/cgi-bin/keystone/main,那么这个文件(链接)必须存在;
在ErrorLog 处设置Keystone错误日志的路径,这个日志是由HTTPD根据Keystone的运行结果维护的,Ubuntu和红帽系的OS在Apache2的目 录名称上可能不同,比如Ubuntu中Apache2的日志维护在/var/log/apache2/, 而CentOS等系统中Apache2的日志维护在/var/log/httpd/;
在CustomLog处设置Keystone访问日志的路径,注意事项同ErrorLog.
conf文件配置完成后,创建目录/var/www/cgi-bin/keystone/, 为其中添加两个软链接main和admin,他们都指向keystone/httpd/keystone.py
# mkdir /var/www/cgi-bin/keystone; cd /var/www/cgi-bin/keystone
# ln -s /home/openstack/keystone/httpd/keystone.py main
# ln -s /home/openstack/keystone/httpd/keystone.py admin
然后重启Apache2服务即可,如果希望开机时Keystone就加载运行,使用sysv-rc-conf将Apache2设置为开机启动即可.
查看Keystone服务器进程,发现现在它已经在HTTPD中运行了,注意如果keystone.conf文件中也配置了日志文件log_file, 那么Keystone的错误日志将会输出两份,一份由HTTPD维护,一份由Keystone维护,但是二者的内容是一样的.
# ps aux | grep keystone
darren 0.0 0.1 ? Sl : : (wsgi:keystone-pu -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-pu -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-pu -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-pu -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-pu -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-ad -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-ad -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-ad -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-ad -k start
darren 0.0 0.1 ? Sl : : (wsgi:keystone-ad -k start
Ubuntu下在Apache中运行Keystone的更多相关文章
- Ubuntu下配置Apache的Worker模式
其实Apache本身的并发能力是足够强大的,但是Ubuntu默认安装的是Prefork模式下的Apache.所以导致很多人后面盲目的去 安装lighttpd或者nginx一类替代软件.但是这类软件有一 ...
- ubuntu下在apache部署python站点
ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...
- Ubuntu下关闭apache和mysql的开机启动
Ubuntu下关闭apache和mysql的开机启动 sudo apt-get install sysv-rc-conf sudo sysv-rc-conf sudo vi /etc/init/mys ...
- php在apache中运行模式
php在apache中运行模式 (2011-12-18 02:38:27) 标签: 杂谈 分类: 服务器及软件 一.php在php在三种工作方式:Apache 模块DLL) 以下分别比较: 1. ph ...
- ubuntu下配置Apache
ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...
- Ubuntu 下部署asp.net运行环境
在Ubuntu下部署asp.net运行环境,网上教程很多,基本都是编译Mono源码,然后安装jexus.但是可能是我最近RP不太好,编译Mono源码一直都是失败,无奈之下只好找另外的方法安装了. 网上 ...
- 在Ubuntu下的OpenStack中配置使用Spice协议
在Ubuntu下的OpenStack中配置使用Spice协议 by 无若 ####控制节点#安装apt-get install nova-spiceproxy spice-html5 spice-vd ...
- ubuntu 下搭建apache+python的运行环境
ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...
- 在ubuntu下配置apache运行python脚本
2008-12-05 常用的简单命令 sudo apt-get remove --purge apache apache2 (彻底删除) sudo /etc/init.d/apache2 r ...
随机推荐
- Windows 文件名的书写规范
下面是不能用于文件名的: / \ : * " < > | windows系统下文件名长度为: 255个英文字符(DOS下8.3格式),包括文件名和扩展名在内,或者是255/2=1 ...
- 几种Unity运行平台的判断
这里就介绍几种常见的,也是便于使用的几种平台判断的方法. 1.先说第一种,也是我用的顺手的一个.利用RuntimePlatform判断,API上的解释是[The platform applicatio ...
- su 与 su - 比较
原文地址:http://blog.chinaunix.net/uid-25557346-id-2889329.html 今天有一同事说在切换用户的时候,找不到该用户下用户命令,后来仔细检查了一下过 ...
- linux 启动 Oracle 实例
启动数据库实例,分为两步:第一步,启动监听:第二步,启动数据库实例. 一.如何启动数据库实例 1.进入到sqlplus启动实例 --“切换到oracle用户” su - oracle --“打开监听” ...
- Nginx升级
Ubuntu14.04默认的安装源中安装的是Nginx 1.4.6 echo deb http://nginx.org/packages/ubuntu/ trusty nginx >> / ...
- iOS开发-UIView扩展CGRect
关于UIView的位置都会遇到,一般需要改变UIView的位置,需要先获取原有的frame位置,然后在frame上面修改,有的时候如果只是改变了一下垂直方向的位置,宽度和高度的一种,这种写法很麻烦.下 ...
- 【Spark】Sparkstreaming-性能调优
Sparkstreaming-性能调优 Spark Master at spark://node-01:7077 sparkstreaming 线程 数量_百度搜索 streaming中partiti ...
- sqlite3命令行查看中文乱码问题解决
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.我们通过程序创建的数据库一般位于/data/data/程序db设置的content类 ...
- scala recursive value x$5 needs type
recursive value x$5 needs type的原因是使用了一个类型不确定的变量,例如 val (id, name) = (id, getName(id)) 其中id是个变量,其值还不确 ...
- C# System.IO.File
using System; using System.IO; class Test { public static void Main() { string path = @"c:\temp ...