我在并行子目录中有很多项目都有etc/lighttpd.conf文件.文件很简单; 它们只包含一个如下所示的指令:
url.rewrite-once = ("^/project(.*)$"=>"project/router.php?args=$1")
Run Code Online (Sandbox Code Playgroud)
不幸的是,我刚刚发现我不能简单地遍历它们,因为我会得到一个"重复的配置变量"错误.我看到我应该使用它的方式是这样的:
url.rewrite-once = (
"^/project1(.*)$"=>"project1/router.php?args=$1"
,"^/project2(.*)$"=>"project2/router.php?args=$1"
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我使我的每个目录配置文件只包含重写,并有一个shell脚本构建它们,我不能真正在每个目录文件中放置任何其他轻微的指令.再说一遍,我是新手,所以也许我不需要,只是没有意识到这一点.
这样做的"正确方法"是什么?
我已经为Facebook创建了PHP应用程序.它使用MySQL,Memcached,可在Centos 2,6 Ghz和2 GB RAM上使用Lighttpd.
它基本上是一个PHP文件,它在第一次运行后被缓存,并且每次下载它都是直接从Memcached在0.8毫秒内提供的.
我还能做些什么来缩短这个时间?
我需要在lighttpd中启用模式重写它不应该显示index.php扩展名....
我只是为django设置了lightc的fastcgi,但是当它处理url时我得到了fcgi文件路径,例如http://myserver.myhost.com/myproject.fcgi上的 404错误.它需要路由到/而不是/myproject.fcgi.
Lighty conf:
$HTTP["host"] =~ "myproject\.myhost\.com" {
fastcgi.server = (
".fcgi" => (
"localhost" => (
"bin-path" => "/var/www/myproject/myproject.fcgi",
"socket" => "/tmp/myproject.sock",
"check-local" => "disable",
"min-procs" => 2,
"max-procs" => 4,
)
),
)
alias.url = (
"/media" => "/usr/local/lib/python1.6/dist-packages/Django-1.2.1-py2.6.egg/django/contrib/admin/media/",
)
url.rewrite-once = (
"^(/media.*)$" => "$1",
"^/favicon\.ico$" => "/media/favicon.ico",
"^(/.*)$" => "/myproject.fcgi$1",
)
}
Run Code Online (Sandbox Code Playgroud)
myproject.fcgi:
#!/usr/bin/python2.6
import sys, os
# Add a custom Python path.
sys.path.insert(0, "..")
# Switch to the directory of your project. (Optional.)
os.chdir("/var/www/myproject") …Run Code Online (Sandbox Code Playgroud) 我在lighttpd + FCGI上运行django安装.一切正常,除了管理员.
似乎在我发布某些内容后重定向(即我修改了sor创建模型的实例)出错了.
管理员会将我重定向到www.xyz.com/django.fcgi/admin/...而django.fcgi只能由lighttp重写规则使用来调用FCGI.
这是conf文件中的重定向
url.rewrite-once = (
"^(/media.*)$" => "$1",
"^/favicon\.ico$" => "/media/favicon.ico",
"^(/.*)$" => "/django.fcgi$1",
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我正在尝试配置lighttpd以将流量代理到一个代理服务器的相对路径,并将流量路由到另一个路径到另一个代理服务器.
例如:
http://mydomain.com/ proxies to 123.111.111.1
http://mydomain.com/apathname/ proxies to 123.111.111.2
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何配置/ apathname /我.这是我到目前为止配置的示例,它只是将所有流量定向到123.111.111.1
$HTTP["host"] =~ "mydomain.com" {
proxy.balance = "fair"
proxy.server = (
"" =>
(
("host" => "123.111.111.1", "port" => "80" )
),
"apathname" =>
(
( "host" => "123.111.111.2", "port" => "80" )
)
)
}
Run Code Online (Sandbox Code Playgroud)
如果这个问题应该在另一个SO网站上,我很抱歉.我主要是一个程序员,而不是一个网络人员,我知道我总是得到SO本身的最佳答案,这就是我在这里问的原因.
我是使用Python进行开发的新手,我正在拼凑我需要的信息,以便在另外两个开放式问题中做出明智的选择.(这不重复.)
我不是使用框架开发,而是使用gevent库从头开始构建Web应用程序.就前端Web服务器而言,似乎我有三个选择:nginx,apache和lighttpd.
从我读过的所有帐户来看,nginx的mod_wsgi都不合适.
这留下了两个选择 - lighttpd和Apache.在负载很重的情况下,我会看到性能和内存消耗特征的主要差异吗?我的印象是,即使不使用prefork,Apache也会感到内存饥渴,但我不知道lighttp对于Python应用程序有多适合.
使用lighttpd而不是apache有什么警告或好处吗?我真的很想听到你可能给我带来的所有信息!
我正在使用带有静态 404 页面的 lighttpd 404 错误处理程序。整个 conf 文件如下所示:
server.document-root = "/home/www/local/www/mysite/html"
url.rewrite = (
"^(.*)/($|\?.*)" => "$1/index.html",
"^(.*)/([^.?]+)($|\?.*)$" => "$1/$2.html"
)
server.error-handler-404 = "/404.html"
$HTTP["scheme"] == "http" {
url.redirect = ( "^/blog.html$" => "/blog/",
// various individual redirects
)
}
$HTTP["scheme"] == "https" {
$HTTP["url"] !~ "^/blog/admin/" {
url.redirect = ( "^/(.*)" => "http://www.mysite.com/$1" )
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我转到一个应该是 404 的地址时,我确实正确地看到了我们的 404 页面,但状态代码是 200。
该lighttpd的文档说,你应该如果使用的是静态页面得到404个状态码。
我认为我们正在使用静态页面,但是我们重定向的方式是否意味着我们实际上不是?
对不起,新手问题。
我试图为我的lighttpd服务器设置SSL.lighttpd -v显示:lighttpd/1.4.26(ssl) - 一个轻快的网络服务器
我运行:openssl s_client -connect mydomain.com:443并获得响应:CONNECTED(00000003)......没有错误,没有
但是当我想通过浏览器访问mydomain.com:443它失败并在error.log中我可以看到:
(connections.c.294)SSL:1错误:1407609C:SSL例程:SSL23_GET_CLIENT_HELLO:http请求
任何人都可以帮助解决这个问题,因为我真的不知道哪里可以出问题而且我不是那么多Linux家伙,我只需要在Web服务器上设置ssl.谢谢
如何设置 lighttpd 以使环境变量可用于生成的进程?
我有一个通过 CGI 作为 URL 调用的可执行文件(例如http://.../cgi-bin/executable.bin)。
可执行文件需要加载库并读取/etc/profileusing中设置的环境变量export FOO=BAR。
当我尝试访问 URL 时,它会生成内部服务器错误 (500),这是由在/etc/profile.