gpt4 book ai didi

ssl - 网络套接字。 FastCGI 或 WSGI。 SSL。同域。如何?

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:44 24 4
gpt4 key购买 nike

问题

我构建了一个分为两部分的应用程序:一个低开销服务器,它使用 Socket.IO 监听长轮询和 websocket 连接。和一个常规的 WSGI 兼容的 Python webapp。前者将绑定(bind)到路径 /socket.io/ ,后者将绑定(bind)到所有其他路径。此外,/static/ 中的文件可以直接从文件系统提供,并带有远期到期 header 。

我认为在这两个服务之前放置一个代理很容易,这两个服务将通过 SSL 为整个站点提供服务,但我找不到好的解决方案。你能帮忙吗?

背景

我将应用程序分成两部分是因为它很有意义——与打开 websocket 套接字相比,处理常规网络请求(数据库查询、中间件)需要更多的内存。我仍然认为这是个好主意,但这可能是个错误。

Python webapp 是 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",
)

关于ssl - 网络套接字。 FastCGI 或 WSGI。 SSL。同域。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5357635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com