最近在进行 dist-upgrade 时,我在 Ubuntu 8.0.4 上安装的 lighttpd-1.4.19 开始无法使用 /etc/init.d/lighttpd restart 命令重新启动或正确重新加载。
~$ sudo /etc/init.d/lighttpd restart
* Stopping web server lighttpd
...done.
* Starting web server lighttpd
2009-06-13 04:06:36: (network.c.300) can't bind to port: 80 Address already in use
...fail!
Run Code Online (Sandbox Code Playgroud)
当我重新加载时发生同样的错误。
我解决它的方法是杀死 lighttpd 然后发出 start 命令,但似乎我不应该这样做:)
我查看了我的配置文件,没有发现任何即时错误。有没有人有任何想法可能导致此错误?这似乎是撰写此问题时可通过 apt-get 路线获得的最新版本。
我的配置文件是:
# Debian lighttpd configuration file
#
############ Options you really have to take care of ####################
## modules to load
# mod_access, mod_accesslog and mod_alias are loaded by default
# all …Run Code Online (Sandbox Code Playgroud) 我已经使用 yum 安装了 FastCGI,并编辑了我的 lighttpd.conf,但是在重新启动服务器时我收到了这个错误。
2009-06-24 12:44:43: (log.c.97) server started
2009-06-24 12:44:43: (mod_fastcgi.c.924) bind failed for: unix:/var/run/lighttpd/php-fastcgi.socket-0 No such file or directory
2009-06-24 12:44:43: (mod_fastcgi.c.1365) [ERROR]: spawning fcgi failed.
2009-06-24 12:44:43: (server.c.902) Configuration of plugins failed. Going down.
Run Code Online (Sandbox Code Playgroud)
我的 lighttpd.conf 的相关部分是:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
#"socket" => "/var/run/lighttpd/php-fastcgi.socket",
#"bin-path" => "/usr/bin/php-cgi"
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
)
)
)
Run Code Online (Sandbox Code Playgroud)
非常感谢。
我在带有 Fcgi 和 Memcached 的 Centos 5 上安装了 Lighttpd。每隔一两周,我会收到一次内部服务器错误 500,我必须手动重新启动 lighttpd 以使其再次工作。
在我的 lighttpd 配置中,我定义了错误日志文件:
server.errorlog = "/home/lxadmin/httpd/lighttpd/error.log"
Run Code Online (Sandbox Code Playgroud)
但是当我打开它时,它只有一个月前的最后几天没有行。
所以我的问题是如何诊断问题所在以及如何为我的配置启用错误日志?
我可以使用 Lighttpd Web 服务器为虚拟主机设置多个 SSL 证书吗?
我的服务器上有几个网店(每个网店都有自己的域),我需要为每个网店设置 SSL 证书。
谢谢帕特里克
我写了一个 munin-plugin 来计算 lighttpd 的 http-statuscodes。剧本:
#!/bin/bash
######################################
# Munin-Script: Lighttpd-Statuscodes #
######################################
##Config
# path to lighttpd access.log
LIGHTTPD_ACCESS_LOG_PATH="/var/log/lighttpd/access.log"
# rows to parse in logfile (higher value incrase time to run plugin. if value to low you may get bad counting)
LOG_ROWS="200000"
#
#munin
case $1 in
autoconf) # check config
AVAILABLE=`ls $LIGHTTPD_ACCESS_LOG_PATH`
if [ "$AVAILABLE" = "$LIGHTTPD_ACCESS_LOG_PATH" ]; then
echo "yes"
else
echo "No: "$AVAILABLE
echo "Please check your config!"
fi
exit 0;;
config) # graph config
cat …Run Code Online (Sandbox Code Playgroud) 对我来说,这似乎合乎逻辑,但似乎行不通。
$HTTP["host"] =~ "(^|\.)hd.domain\.com$" {
server.document-root = "/domain_site/"
$HTTP["url"] =~ "^/aa/" {
server.document-root = "/domain_aa_site/"
}
}
当我访问http://hd.domain.com/aa/ 时,我收到“404 - Not Found”
我究竟做错了什么?
我真的刚刚开始使用 lighttpd,我不确定如何准确配置它。
我想获取流量并重定向到另一台服务器说“ http://localhost/url_a/ ”并将请求和响应重定向到“ http://other_server:8080/ ”
另一个例子是“ http://localhost/url_b/ ”转到“ http://other_server:8081/url_b/ ”
我到底应该研究什么来完成这个?
谢谢。
我想使用 Lighttp 在端口 8443 上将(反向代理)请求转发到https://secure.mydomain.com(:443)到我的内部 (HTTPS-)WebServer。
Environment-Infos:
我的 WebServer 是一个在端口 8080 (HTTP) 和端口 8443 (HTTPS) 上运行的 Tomcat。
HTTP 和 HTTPs 在本地访问时效果很好(http://127.0.0.1:8080和/或https://127.0.0.1:8443)
(端口 8080 + 端口 8443 不能通过 Internet 直接访问。)
对于HTTP,此配置有效:
$HTTP["host"] == "unsecure.mydomain.com" {
proxy.server = ( "" => ( (
"host" => "127.0.0.1",
"port" => 8080
) ) )
}
Run Code Online (Sandbox Code Playgroud)
问题:
反向代理HTTPS需要什么?
我了解 ssl 握手流程,但我面临逻辑问题。当用户选择证书时,我需要根据应用程序对其进行验证,以了解其是否可靠并与任何系统用户匹配。但如果没有,我必须允许用户再次要求选择另一个。也许用户在他们的机器上安装了多个证书并错误地选择了错误的证书。
在我的实际场景中,要选择另一个证书,用户必须关闭浏览器并再次打开,但它会给用户体验带来负面影响,我想改进它。
该解决方案对每个请求都进行一次握手,因此它允许用户选择另一个请求。
但是怎么做呢?
我发现的最相关的问题是https://security.stackexchange.com/questions/56623/avoiding-ssl-handshake-for-each-call。
- 在完整的握手是一个什么样的客户端和服务器做的时候,他们不知道对方(他们以前从来没有聊过,或者说是很久以前)。在完全握手中,发送证书,并发生非对称加密(RSA、Diffie-Hellman...)。
- 该缩写握手是什么客户端和服务器记住对方; 更准确地说,他们记住了他们在之前的完全握手中建立的算法和密钥,并同意重用它们(从技术上讲,他们重用“主秘密”并从中派生出用于此连接的新加密密钥)。
我可以释放任何 cookie,关闭选项卡并禁用保持活动状态,第二次握手不会打开证书提示。它使用的是先前选择的,例如对于 chrome,没有“记住我的决定”选项,Firefox 有。Edge、Opera、Edge 等也会发生同样的情况。它是标准吗?
我猜,它可以由服务器端控制,请求一个新的 SSL 握手。我做了一些干预尝试自己解决它,但没有成功
在客户端:
在服务器端:
关闭浏览器是唯一对新 SSL Handshake 有效的方法,但它会带来糟糕的用户体验。
好吧,如果我正在清除浏览器中的所有数据,关闭连接,删除任何活动的数据,并且在我关闭浏览器(终止所有进程)之前它仍在使用第二个请求中选择的第一个证书,则有问题,或者使用浏览器(全部)或服务器。
如果我的应用程序使用 SSL 对用户进行身份验证,我不能在不关闭浏览器的情况下使用多次登录,这是不对的,它应该有办法重新协商此身份验证。
我刚刚在我的 Web 服务器日志文件中发现了这些访问:
::ffff:218.38.136.38 109.72.95.175 - [10/Jan/2011:02:54:12 +0100] "GET /user/soapCaller.bs HTTP/1.1" 404 345 "-" "Morfeus Fucking Scanner"
::ffff:218.38.136.38 109.72.95.174 - [10/Jan/2011:02:54:12 +0100] "GET /user/soapCaller.bs HTTP/1.1" 404 345 "-" "Morfeus Fucking Scanner"
Run Code Online (Sandbox Code Playgroud)
我应该开始担心吗?或者这只是入侵我的服务器的正常尝试?谢谢