博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu下在Apache中运行Keystone
阅读量:5973 次
发布时间:2019-06-19

本文共 3747 字,大约阅读时间需要 12 分钟。

  最近一次从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

  这里/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 5000Listen 35357
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
= 2.4> ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log CustomLog /var/log/apache2/keystone_access.log combined
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
= 2.4> ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log CustomLog /var/log/apache2/keystone_access.log combined

  在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 keystonedarren    2582  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-pu -k startdarren    2583  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-pu -k startdarren    2584  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-pu -k startdarren    2585  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-pu -k startdarren    2586  0.0  0.1 176316  5692 ?        Sl   12:29   0:00 (wsgi:keystone-pu -k startdarren    2587  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-ad -k startdarren    2588  0.0  0.1 176316  5692 ?        Sl   12:29   0:00 (wsgi:keystone-ad -k startdarren    2589  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-ad -k startdarren    2590  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-ad -k startdarren    2591  0.0  0.1 176308  5692 ?        Sl   12:29   0:00 (wsgi:keystone-ad -k start

 

转载地址:http://vxbox.baihongyu.com/

你可能感兴趣的文章
android幻灯片效果实现-Gallery
查看>>
概率论20--中心极限定理
查看>>
推论统计7--方差分析
查看>>
node中exports与module.exports的区别
查看>>
PHP学习笔记2:文件
查看>>
jsrender简单使用
查看>>
window mysql-bin 转化为可读模式
查看>>
redis 安装及php扩展编译安装
查看>>
MPAndroidChart---饼状图PieChart
查看>>
PHP中基于b2core框架内部的网页上Html输出生成Word的处理
查看>>
采用Servlet Listener方式运行Liquibase
查看>>
TCP-IP 学习(三) TCP
查看>>
对比两个无序整形数组相似度问题算法
查看>>
批量有效地修改package名
查看>>
android或ios app请求参数格式
查看>>
Camera Vision - video surveillance on C#
查看>>
如何理解网络连接中的"3次握手"?
查看>>
使用Dubbo服务出现java.io.IOException: invalid constant type: 18异常解决办法
查看>>
一条命令完成砸壳
查看>>
PYKit目录
查看>>