开发手册 欢迎您!
软件开发者资料库

CherryPy - 部署应用程序

CherryPy部署应用程序 - 从简介,环境设置,词汇表,内置Http服务器和内部引擎,工具箱,工作应用程序,Web服务,表示层,Ajax的使用,演示应用程序,测试开始,简单易学地学习CherryPy ,部署应用程序。

本章将更多地关注通过内置的CherryPy HTTP服务器启用的基于CherryPy的应用程序SSL.

配置

有不同的Web应用程序中所需的配置设置级别 :

  • Web服务器 : 链接到HTTP服务器的设置

  • 引擎 : 与托管引擎相关的设置

  • 应用程序 : 用户使用的应用程序

部署

CherryPy应用程序的部署被认为是这是一个非常简单的方法,可以从Python系统路径中获得所有必需的包.在共享的Web托管环境中,Web服务器将驻留在前端,允许主机提供程序执行筛选操作.前端服务器可以是Apache或 lighttpd .

本节将介绍一些在Apache和lighttpd Web服务器后面运行CherryPy应用程序的解决方案.

cherrypydef setup_app():class Root:@cherrypy.exposedef index(self):   # Return the hostname used by CherryPy and the remote   # caller IP addressreturn "Hello there %s from IP: %s " %(cherrypy.request.base, cherrypy.request.remote.ip)cherrypy.config.update({'server.socket_port': 9091,   'environment': 'production',   'log.screen': False,   'show_tracebacks': False})cherrypy.tree.mount(Root())if __name__ == '__main__':setup_app()cherrypy.server.quickstart()cherrypy.engine.start()

SSL

基于CherryPy的应用程序可以支持SSL(安全套接字层).要启用SSL支持,必须满足以下要求;

  • 在用户环境中安装PyOpenSSL软件包

  • 在服务器上拥有SSL证书和私钥

创建证书和私钥

让我们处理证书和私钥的要求 :

  • 首先,用户需要私钥 :

openssl genrsa -out server.key 2048

  • 此密钥不受密码保护,因此具有弱保护.

  • 以下命令将发出 :

openssl genrsa -des3 -out server.key 2048

  • 该程序将需要密码.如果您的OpenSSL版本允许您提供空字符串,请执行此操作.否则,输入默认密码,然后将其从生成的密钥中删除,如下所示 :

openssl rsa -in server.key -out server.key

  • 证书的创建如下 :

 openssl req -new -key server.key -out server.csr

  • 此过程将要求您输入一些详细信息.为此,必须发出以下命令 :

openssl x509 -req  - days 60 -in server.csr -signkey server.key -out server.crt

  • 新签署的证书有效期为60天.

以下代码显示其实施和减号;

import cherrypyimport os, os.pathlocalDir = os.path.abspath(os.path.dirname(__file__))CA = os.path.join(localDir, 'server.crt')KEY = os.path.join(localDir, 'server.key')def setup_server():class Root:@cherrypy.exposedef index(self):   return "Hello there!"cherrypy.tree.mount(Root())if __name__ == '__main__':setup_server()cherrypy.config.update({'server.socket_port': 8443,   'environment': 'production',   'log.screen': True,   'server.ssl_certificate': CA,   'server.ssl_private_key': KEY})cherrypy.server.quickstart()cherrypy.engine.start()

下一步是启动服务器;如果你成功了,你会在屏幕上看到以下消息 :

HTTP Serving HTTPS on https://localhost:8443/