0

Geventのpywsgiサーバー内で複数のサイトをホストすることは可能ですか?私はbottlepyとgeventpywsgiサーバーを備えたマシンを持っていて、2番目のサイトをどのようにセットアップするのか興味があります。私が考えることができる唯一のことは、フロントエンドとしてnginxのようなものを使用し、異なる内部ポートで各geventサーバー/サイトを実行することです。これは本当にこれにアプローチするための最良の方法ですか?

4

2 に答える 2

2

仮想ホスティングはWSGIプロトコルの一部ではありません。

nginxやその他のフロントエンドサーバーを使用したくない場合は、いくつかの基盤となるwsgiアプリにディスパッチする既存のwsgiミドルウェアを作成または使用できます。

このようなもの(私はそれをテストしていません): http ://discorporate.us/jek/projects/wfront/

ただし、wsgiサーバーは主に、フロントエンドサーバーではなく、アプリサーバーとして使用することを目的としています。私はnginx、apache、lighttpd、またはその他の十分にテストされたフロントエンドサーバーを使用して、その仕事をさせます。フロントエンドサーバーを使用するいくつかの理由:

  • 彼らはセキュリティのためにリクエストの整合性をチェックします
  • SSLをサポートしています
  • それらは通常より堅牢です
  • スケーリングするために、いくつかのwsgiプロセスのロードバランサーとして機能できます。
于 2012-09-05T14:04:22.203 に答える
0

CherryPy(WSGIサーバーとして)とBottle(アプリケーションとして)に注目したい場合は、しばらく使用しており、かなり安定していることを証明しています。

以下は、複数の仮想ホストの例です。

import cherrypy
from bottle import Bottle
import os


app1 = Bottle() 
app2 = Bottle()

@app1.route('/')
def homePage():    
    return "=========  home1 ==============="


@app2.route('/')
def homePage_2():    
    return "=========  home2 ==============="

vhost = cherrypy._cpwsgi.VirtualHost(None, 
                                     domains={
                                              'www.domain1.com': app1, 
                                              'www.domain2.com': app2,
                                             }
                                     )

cherrypy.tree.graft(vhost) 

cherrypy.config.update({
                        'server.socket_host': '192.168.1.4',
                        'server.socket_port': 80,
                      })
cherrypy.engine.start()
cherrypy.engine.block()
于 2014-01-22T02:21:03.420 に答える