Gevent 's pywsgi 서버 내에 하나 이상의 사이트를 호스팅 할 수 있습니까? 나는 bottlepy 및 gevent pywsgi 서버가있는 머신을 가지고 있으며 두 번째 사이트를 설정하는 방법에 대해 궁금합니다. 내가 생각할 수있는 유일한 방법은 프론트 엔드로 nginx를 사용하고 다른 내부 포트에서 각 gevent 서버/사이트를 실행하는 것입니다. 이것이 실제로이 문제에 접근하는 가장 좋은 방법입니까?PyWSGI (Gevent) 가상 호스트
0
A
답변
2
가상 호스팅은 WSGI 프로토콜의 일부가 아닙니다.
nginx 또는 다른 프런트 엔드 서버를 사용하고 싶지 않으면 몇 가지 기본 wsgi 응용 프로그램으로 보내지는 기존 wsgi 미들웨어를 작성하거나 사용할 수 있습니다. 이 같은
뭔가 (내가 그것을 테스트하지 않았습니다) : http://discorporate.us/jek/projects/wfront/
그러나 WSGI 서버가 주로 의미는 서버를 프론트 엔드하지, 애플리케이션 서버로 사용할 수 있습니다. nginx, apache, lighttpd 또는 다른 잘 테스트 된 프론트 엔드 서버를 사용하여 작업을 수행하게합니다. 프런트 엔드 서버를 사용하는 몇 가지 이유 :
- 그들은 SSL을 지원하는 보안
- 에 대한 요청 무결성을 확인
- 그들은 일반적으로 더 견고 그들이 위해 여러 WSGI 공정에 부하 분산 장치 역할을 할 수 규모에 맞게
0
Bottle (As Application)과 함께 CherryPy (WSGI 서버로)에 관심을 갖고 싶다면 잠시 동안 사용 해본 결과 매우 안정적이라고 증명할 수 있습니다.
다음은 여러 개의 가상 호스트에 대한 예입니다.
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()
정보를 주셔서 감사합니다, 나는 내 자신의 방법을 쓰는 것을 고려해 왔지만 그것이 결코 nginx와 같은 강력한 것은 아닐 것이라고 생각했습니다. – scape