网袋。FastCGI或WSGI。SSL。同一领域。怎么用?
问题 我已经构建了一个分为两部分的应用程序:一个低开销的服务器,使用它来侦听长轮询和websocket连接,另一个是与WSGI兼容的Python webapp。前者将绑定到路径网袋。FastCGI或WSGI。SSL。同一领域。怎么用?,ssl,fastcgi,lighttpd,wsgi,websocket,Ssl,Fastcgi,Lighttpd,Wsgi,Websocket,问题 我已经构建了一个分为两部分的应用程序:一个低开销的服务器,使用它来侦听长轮询和websocket连接,另一个是与WSGI兼容的Python webapp。前者将绑定到路径/socket.io/,后者将绑定到其他路径。此外,/static/中的文件可以直接从文件系统提供服务,并具有将来很长的过期头 我认为在这两个服务前面放置一个代理很容易,这两个服务将通过SSL服务整个站点,但我找不到一个好的解决方案。你能帮忙吗 背景 我将应用程序分为两部分,因为这很有意义——处理常规web请求(数据库查询
/socket.io/
,后者将绑定到其他路径。此外,/static/
中的文件可以直接从文件系统提供服务,并具有将来很长的过期头
我认为在这两个服务前面放置一个代理很容易,这两个服务将通过SSL服务整个站点,但我找不到一个好的解决方案。你能帮忙吗
背景
我将应用程序分为两部分,因为这很有意义——处理常规web请求(数据库查询、中间件)所需的内存要比打开websocket套接字所需的内存多得多。我仍然认为这是个好主意,但可能是个错误
pythonwebapp兼容WSGI,但可能应该使用FastCGI提供服务;我认为FastCGI进程应该有长期运行的Python解释器,而不是代理。再说一次,我可能错了
我知道lighttpd有一个mod_websocket,我已经构建并安装了这两个模块,但我似乎无法正确配置它。我认为这是一个分层问题——mod_websocket只是将字节往返于后端TCP服务,但也许这没关系
更新
让我知道是否有任何其他信息会有所帮助,比如我的lighttpd配置,我会将其发布在这里。找到了答案。这是我的lighttpd配置,缩写为:
# The port of the Socket.IO daemon
var.daemon_port = 9000
ssl.engine = "enable"
ssl.pemfile = "/path/to.pem"
$HTTP["url"] =~ "^/socket.io" {
proxy.server = ( "" =>
(("host" => "127.0.0.1", "port" => daemon_port))
)
}
alias.url = (
"/favicon.ico" => "/path/to/static/favicon.ico",
"/robots.txt" => "/path/to/static/robots.txt",
)
fastcgi.server = ( "/app.fcgi" => # Arbitrary path name
((
"bin-path" => "/path/to/app.fcgi",
"socket" => "/tmp/app-fcgi-" + PID + ".sock",
"check-local" => "disable",
"fix-root-scriptname" => "enable",
"max-procs" => 1,
))
)
url.rewrite-once = (
"^(/socket.io/.*)$" => "$1",
"^(/(favicon.ico|robots.txt))$" => "$1",
"^(/.*)$" => "/app.fcgi$1",
)