CherryPy教程

CherryPy 应用程序部署

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

配置

Web 应用程序中需要不同级别的配置设置-
Web 服务器-链接到 HTTP 服务器的设置 Engine-与引擎托管相关的设置 应用程序-用户使用的应用程序

部署

部署 CherryPy 应用程序被认为是一种非常简单的方法,其中所有必需的包都可以从 Python 系统路径获得。在共享的网络托管环境中,网络服务器将驻留在前端,允许主机提供商执行过滤操作。前端服务器可以是 Apache 或 lighttpd
本节将介绍一些在 Apache 和 lighttpd 网络服务器后面运行 CherryPy 应用程序的解决方案。
cherrypy
def setup_app():
class Root:
@cherrypy.expose
def index(self):
   # return the hostname used by CherryPy and the remote
   # caller IP address
	
return "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

SSL(安全套接字层)可以在基于 CherryPy 的应用程序中得到支持。要启用 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 cherrypy
import os, os.path
localDir = 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.expose
def 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/
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4