【发布时间】:2014-09-23 14:53:14
【问题描述】:
我有一个烧瓶应用程序,我想使用 CherryPy 的内置服务器进行部署。我选择了 CherryPy,这样就可以部署应用而无需反向代理(即前面的 nginx)。
我无法让 CherryPy 仅侦听单个主机名上的请求。
假设我服务于 2 个站点:test1.com 和 test2.com(并将它们设置在我的主机文件中以指向本地主机)。
我的/etc/hosts 文件:
127.0.0.1 test1.com test2.com
CherryPy 正在服务 test1.com,test2.com 没有任何服务。
我的cherrypy文件如下:
import cherrypy
from my_test_flask_app import app
if __name__ == '__main__':
cherrypy.tree.graft(app, "/")
cherrypy.server.unsubscribe()
server = cherrypy._cpserver.Server()
server.socket_host = "test1.com"
server.socket_port = 8030
server.thread_pool = 30
server.subscribe()
cherrypy.engine.start()
cherrypy.engine.block()
以这种方式设置,我在浏览器上转到test1.com:8030,它按预期工作。
但是当我转到test2.com:8030 时,会提供相同的应用程序。我希望它不会提供任何服务,因为 CherryPy 没有设置为监听 test2.com。
对我来说,CherryPy 似乎只是在侦听给定端口 (8030) 上的所有内容,并将 socket_host 部分视为其 0.0.0.0
我在这里遗漏了什么吗?我浏览了很多文档和教程,但所有事情都表明这段代码 sn-p 应该可以按我的预期工作。
谢谢
【问题讨论】:
标签: python flask webserver wsgi cherrypy