标签: lighttpd

Lighttpd 和 cgi python

我正在尝试通过 lighttpd 执行一些 python 脚本,但是当我尝试运行它时,我只得到一个我被要求下载的空白文件。

配置文件

server.modules  = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_compress",
            "mod_rewrite"
)

server.port                 = 8080
server.bind                 = "127.0.0.1"
server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"



index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                               " index.lighttpd.html" )


url.access-deny             = ( "~", ".inc" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".py" )

dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/x-javascript", "text/css", "text/html", …
Run Code Online (Sandbox Code Playgroud)

python lighttpd

5
推荐指数
1
解决办法
7927
查看次数

Lighttpd负载均衡配置

我正在使用Lighttpd 1.4.30在Play Framework中配置负载均衡器.

我在lighttpd-inc.conf中给出了如下条目.

$HTTP["host"] =~ "http://10.74.9.109:9020" {
proxy.balance = "round-robin" proxy.server = ( "/" =>
( ( "host" => "10.74.9.109", "port" => 9020 ) ) )
}

$HTTP["host"] =~ "http://10.74.9.109:80" {
    proxy.balance = "round-robin" proxy.server = ( "/" => ( 
          ( "host" => "10.74.9.109", "port" => 9020 ), 
          ( "host" => "10.74.9.109", "port" => 9030 ) ) 
    )
}
Run Code Online (Sandbox Code Playgroud)

我的播放应用程序在端口9020,9030上正常运行.

但是,当我尝试http://localhost:80我的负载均衡器时,应将请求转移到任何未发生的端口.我只获得了Lighttpd测试页面.

port configuration load-balancing lighttpd localhost

5
推荐指数
1
解决办法
1854
查看次数

lighttpd mod_compress 不压缩应用程序/json 类型

有没有其他人遇到过以下情况?我正在尝试使用运行 FastCGI/flup 服务器和 Flask 框架的 lighttpd 来提供基于 JSON 的 RESTful API。

我正在使用 Flask 的 RESTful 扩展包,它将 Python 数据编组到一个 JSON 对象中,以作为字符串返回。这工作正常......“Content-Type:application/json”放在响应头中,JSON字符串在响应中。

我想做的是压缩返回的 JSON,如果客户端表明它会接受它。我在 lighttpd.conf 中启用了 mod_compress,以下指令指示要压缩的 MIME 类型:

compress.filetype = ( "application/json", "text/json", "text/javascript",
"application/x-javascript", "text/css", "text/html", "text/plain" )
Run Code Online (Sandbox Code Playgroud)

客户端(基于浏览器)总是发送“Accept-Type: gzip, ...”标头。当 lighttpd 返回 "text/*" MIME 类型时,它正在设置 "Content-Encoding: gzip" 标头并压缩数据,并且客户端会很好地处理它。

但是,这不适用于“application/json”MIME 类型,我正在挠头。即使 API 通过 Flask 路径,lighttpd 不是也负责设置“Content-Encoding: gzip”标头并压缩“application/json”MIME 类型的数据吗?

json lighttpd flask

5
推荐指数
0
解决办法
923
查看次数

在 lighttpd 和树莓派上部署 Flask

我正在尝试使用 lighttpd fastCGI 将 hello flask 应用程序部署到树莓派。

我尽我所能按照http://flask.pocoo.org/docs/0.10/deploying/fastcgi/上的说明进行操作

这是我的烧瓶应用程序(/var/www/demoapp/hello.py)

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World From Flask Yeh!"

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)
Run Code Online (Sandbox Code Playgroud)

这是我的 .fcgi 文件 (/var/www/demoapp/hello.fcgi)

#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from yourapplication import app

if __name__ == '__main__':
    WSGIServer(app).run()
Run Code Online (Sandbox Code Playgroud)

这是我添加到 /etc/lighttpd/lighttpd.conf 的内容

fastcgi.server = ("/hello.fcgi" =>
    ((
        "socket" => "/tmp/hello-fcgi.sock",
        "bin-path" => "/var/www/demoapp/hello.fcgi",
        "check-local" => "disable",
        "max-procs" => 1
    ))
)

alias.url = (
    "/static/" => "/var/www/demoapp/static/",
) …
Run Code Online (Sandbox Code Playgroud)

python lighttpd flask raspberry-pi

5
推荐指数
1
解决办法
6742
查看次数

反向代理 lighttpd https 不起作用

我的服务器上运行着多个 Tomcat。我使用 lighttpd 来反向代理不同域的传入请求。到目前为止,我只使用了 http 而没有使用 https,这个配置对我有用:

$HTTP["host"] == "my.domain.com" {
    proxy.server  = ( "" => ( (
            "host" => "127.0.0.1",
            "port" => 8080
    ) ) )
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试相同并且仅将端口更改为 https 端口时,我只看到一个空白页面。我需要做什么才能将流量重定向到使用 https 的 Tomcat。

https proxy tomcat forwarding lighttpd

5
推荐指数
1
解决办法
629
查看次数

.htaccess重写到另一个端口

我的/ home/joomla目录中有一个joomla设置.我安装了Apache和Lighttpd我配置Lighttpd只代理静态文件,而lighttpd正在侦听端口81.现在我想要的是

无论何时发出静态文件请求,而不是去

www.domain.com/whatever/bg.jpg

它应该重定向到

domain.com:81/whatever/bg.jpg

使用.htaccess

另请注意,www.domain.com已更改为domain.com

请,我需要一个快速的帮助:)

.htaccess lighttpd apache2

4
推荐指数
1
解决办法
1万
查看次数

永久重定向子域名到www.在lighttpd?

我想将domainxyz.com上的所有子域路径重定向到www.domainxyz.com,cdn.domainxyz.com和ad.domainxyz.com除外.

澄清:我想要例如abc.domainxyz.com/cat.php?id=23重定向到www.domainxyz.com/cat.php?id=23.

我如何在lighttpd中执行此操作?

subdomain redirect lighttpd

4
推荐指数
1
解决办法
2247
查看次数

如何将主机名分配给Web服务器?

我使用lighttpd作为我的网络服务器.

目前我正在使用IP地址访问它:

http://192.168.0.1
Run Code Online (Sandbox Code Playgroud)

我想以其身份访问它

http://myhostname.com
Run Code Online (Sandbox Code Playgroud)

我只会在本地网络中使用它,而不是互联网.

我不知道该怎么做.我用Google搜索,但不知道要使用的确切关键字.

webserver lighttpd ip-address hostname

4
推荐指数
1
解决办法
7815
查看次数

带有网络服务器的Flask打破了所有会话?

例如,这段代码:

from flask import session

@app.route('/is_logged_in/')
def is_logged_in():
  return 'user' in session
Run Code Online (Sandbox Code Playgroud)

它运行瓶的开发服务器时运行对我很好,但它抛出一个500错误与任何网络服务器设置(FastCGI的,uWSGI等)的任何服务器(Apache时,Nginx的,lighttpd的)上.

谁知道为什么?


我的实际代码是在GitHub上,如果重要的话.

在使用Flask的内部服务器运行时,它可以完美运行,但是我无法使用任何会话变量来使用生产网络服务器:https://github.com/Blender3D/Webminal/blob/master/server.py

python session lighttpd flask

4
推荐指数
1
解决办法
6109
查看次数

创建HTML按钮以运行Python脚本

所以我一直在寻找这个答案,我发现的大多数答案要么模糊,要么高于我的编程知识.

我想要做的是在网页quad_relay.html上创建一个按钮

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o$
<html xmlns="http://www.w3.org/1999/xhtml">
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
 <body>
   <h1>Quad Web Relay</h1>
   <div>Relay 1:
     <input type="button" value="Toggle" id="toggle1" />
   </div>
 </body>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)

单击该按钮时,我希望它运行python脚本set_gpio.py

def set_pins_high():
        fp = open("/sys/class/gpio/gpio"+pin+"/value","w")
        fp.write(str(1))
        fp.close()
def set_pins_low():
        fp1 = open("/sys/class/gpio/gpio"+pin+"/value","w")
        fp1.write(str(0))
        fp1.close()

for pin in pins:
        for x in range (0,2):
                set_pins_high()
                time.sleep(0.5)
                set_pins_low()
                time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

该网页位于运行Django的lighttpd服务器上.我安装了jQuery和AJAX,我知道它们是我需要采取的路线,但是每次尝试它都不起作用.有人能帮助我吗?

谢谢!

html django ajax jquery lighttpd

4
推荐指数
1
解决办法
3万
查看次数