无法弄清楚如何使用 lighttpd 接收 http 请求
Can't figure out how to receive http requests using lighttpd
我有一个简单的 lighttpd 网络服务器 运行我的路由器。在它的 .conf 文件中我知道我需要设置
$HTTP["querystring"] =~ "cams=on" { telnet 通过托管 poe 交换机打开摄像头 }
我遇到的问题是试图弄清楚如何将它实际发送到 运行 一个脚本,该脚本将 telnet 命令发送到我的 poe 交换机。我从来没有做过这样的事情,而且我无法为任何不生气熟悉网络服务的人找到任何帮助。
使用 lighttpd 有多种方法可以做到这一点。最简单的方法之一是使用 CGI。 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModCGI
server.modules += ( mod_cgi )
$HTTP["query-string"] =~ "cams=on" {
cgi.assign = ( "" => "/path/to/control-script" )
}
您的 /path/to/control-script 将在 lighttpd 收到带有该查询字符串的请求时执行。 (在网上搜索有关 CGI 脚本环境中预期内容的教程,例如环境变量 QUERY_STRING="cams=on")
请注意,建议您将脚本限制在某些路径中,而不是拦截对服务器任何其他部分的任何请求的查询字符串。如果您的脚本在已知路径上运行并且可以处理查询字符串中的多个不同命令,则可以省略 $HTTP["query-string"] 条件。
server.modules += ( mod_cgi )
$HTTP["url"] =~ "^/control/" {
$HTTP["query-string"] =~ "cams=on" {
cgi.assign = ( "" => "/path/to/control-script" )
}
}
最后,您可能想使用 lighttpd mod_auth 来限制谁可以访问控制脚本。 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth
我有一个简单的 lighttpd 网络服务器 运行我的路由器。在它的 .conf 文件中我知道我需要设置
$HTTP["querystring"] =~ "cams=on" { telnet 通过托管 poe 交换机打开摄像头 }
我遇到的问题是试图弄清楚如何将它实际发送到 运行 一个脚本,该脚本将 telnet 命令发送到我的 poe 交换机。我从来没有做过这样的事情,而且我无法为任何不生气熟悉网络服务的人找到任何帮助。
使用 lighttpd 有多种方法可以做到这一点。最简单的方法之一是使用 CGI。 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModCGI
server.modules += ( mod_cgi )
$HTTP["query-string"] =~ "cams=on" {
cgi.assign = ( "" => "/path/to/control-script" )
}
您的 /path/to/control-script 将在 lighttpd 收到带有该查询字符串的请求时执行。 (在网上搜索有关 CGI 脚本环境中预期内容的教程,例如环境变量 QUERY_STRING="cams=on")
请注意,建议您将脚本限制在某些路径中,而不是拦截对服务器任何其他部分的任何请求的查询字符串。如果您的脚本在已知路径上运行并且可以处理查询字符串中的多个不同命令,则可以省略 $HTTP["query-string"] 条件。
server.modules += ( mod_cgi )
$HTTP["url"] =~ "^/control/" {
$HTTP["query-string"] =~ "cams=on" {
cgi.assign = ( "" => "/path/to/control-script" )
}
}
最后,您可能想使用 lighttpd mod_auth 来限制谁可以访问控制脚本。 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth