- 浏览: 4826582 次
- 性别:
- 来自: 上海
博客专栏
-
robbin谈管理
浏览量:137513
文章分类
最新评论
-
xly1981:
领导者是团队的灵魂。深入一线的过程,包括代码review,能帮 ...
robbin谈管理:改造团队的经验(2) -
jiehuangwei:
像这种总结比较性的ppt文档可以多发啊
Web并发模型粗浅探讨 -
linux1308:
看完学习到了很多东西,感谢推荐!
推荐一篇很好的RoR部署方案性能评测 -
zweite:
直接对搜索的结果进行缓存是不是会更快一点呢
漫谈应用缓存的命中率问题 -
kaogua:
现在已经是ruby2.0了, 不知道这个的效率是怎么样的, 是 ...
Ruby作为服务器端应用已经成熟了
之前写过一篇在Linux平台上安装和配置Ruby on Rails详解,可能是有点高估了Linux的普及和应用程度,无数安装和配置的问题都以各种方式向我涌过来。这里集中的提供一下疑难解答:
一、到底我应该用Lighttpd,还是Nginx/Mongrel?
现在Nginx/Mongrel的部署方式越来越受欢迎了,很多人置疑Lighttpd/FastCGI,并且现在也涌现了一些比Mongrel性能更好的例如Thin,ebb等ruby应用服务器,那Lighttpd/FastCGI真的过时了吗?
大家有兴趣可以看一下我这篇文章:RoR部署方案深度剖析,Lighttpd提供了很多其他Web服务器不具备的优势,可以最大化FastCGI的性能。现在Mongrel/Thin/ebb都利用了一些多线程或者事件IO机制来提供并发性能,这是FastCGI所不具备的,但遗憾的是Rails框架是单线程的,最终还是必须单进程单线程来执行Rails请求,所以这些并发优势无用武之地。但一些其他Ruby的Web框架例如camping,weavers已经开始支持ruby多线程,提供了比Rails好得多的性能,mongrel/ebb只有在这些web框架上面才能发挥其性能优势。
所以只要你还是用Rails框架,Lighttpd/FastCGI就是性能最好的部署方案。
二、ubuntu Linux安装ruby碰到的缺少readline,zlib库的问题?
有些人的ubuntu安装的库不全,比方说缺少readline库,缺少zlib库,可能会导致自己手工编译安装ruby的失败,那么就用apt-get先把库安装好。
三、Lighttpd安装遇到的缺少pcre库的问题?
RHEL/CentOS用户可能要用yum安装一下pcre/pcre-devel这两个库,ubuntu用户用apt-get安装一下,Linux熟手也可以自己下载源代码编译安装,Pcre是Perl兼容的正则表达式库,Lighttpd的Rewrite功能需要它。
四、Lighttpd配置过程当中遇到的种种问题?
1、我用的是ubuntu,你说的控制脚本rc.lighttpd我跑不了,执行就会报错
如果你的Linux是ubuntu,那么需要自己创建启动脚本,lighttpd官方wiki上面已经给出来该脚本,地址在:
http://redmine.lighttpd.net/wiki/1/ScriptsUbuntu
rc.lighttpd这个脚本是针对SuSE Linux写的,此外还提供了一个rc.lighttpd.redhat是针对RedHat Linux写的,你自己写一个控制脚本,也不过是举手之劳:
创建一个shell脚本,内容如上,chmod u+x lighttpd.sh,这个脚本就可以用来启动关闭和重起lighttpd了
2、启动Lighttpd的时候报错,说XXX目录找不到
Lighttpd启动之后默认情况下会写access log,error log,如果你启动了压缩过程,还会把文件压缩过的版本放在压缩目录下面,所以检查一下你的lighttpd.conf配置文件,是不是这些目录还没有,或者路径不对。
3、启动lighttpd可以访问,但如果配置了Rails,就无法启动
如果无法启动,要学会自己看Lighttpd的error log和Rails项目的log目录下面的fastcgi crash log,在这两个log文件当中可以找到出错原因。其中一种常犯的错误是:Rails项目在Windows上面创建和开发,最后部署到Linux Server上面。这种情况下dispatch.fcgi这个脚本的ruby解析器路径是 #!c:/ruby/bin/ruby.exe 这个路径在Linux上面肯定是错误的,你可以改成#!/usr/bin/env ruby,或者干脆在Linux上面创建该Rails项目。此外在windows上面创建的Rails项目,dispatch.fcgi没有可执行权限,这也需要你在Linux上面先赋予可执行权限才行。你可以尝试着手工运行该脚本cd public && ./dispatch.fcgi,看看是否可以运行。
4、启动lighttpd报错,说找不到socket路径
我在前面安装文档中给出来的配置内容如下:
就算照抄你要改改路径吧?这个demo当中的socket路径是/tmp/lighttpd/socket/rails.socket,那你要照抄,先检查一下有没有/tmp/lighttpd/sock目录总是应该的吧?其实用啥路径都无妨,关键就是别照抄,领会原理,根据自己的环境做相应的调整。
5、lighttpd可以启动,但是访问Rails应用出现404错误,找不到页面
在lighttpd的虚拟域配置里面有一项
意思是当lighttpd找不到URL对应的硬盘文件,就会调用Rails的dispatch.fcgi去处理该URL请求,这也是lighttpd访问Rails的主要方式,其性能比URL转发要快。如果你在配置文件里面忽略了这一行,lighttpd就会直接返回404错误,而不是交给Rails处理。
6、重起lighttpd以后,fastcgi进程不关闭,导致多次重起lighttpd之后,fastcgi进程堆积越来越多?
正常情况下,关闭Lighttpd以后,dispatch进程就会销毁,但是在dispatch进程处理请求的时候关闭lighttpd,dispatch进程并不会马上关闭,而是处理完毕当前请求,才会关闭掉。一些极端情况下,可能会导致dispatch进程一直不关闭,dispatch进程就会越来越多。解决办法很简单 killall -9 dispatch.fcgi,只管杀进程就好了。
7、我的lighttpd和FastCGI部署在不同的服务器,怎么配置呢?
这种情况下,Lighttpd只是连接远程服务器的TCP端口,而不负责启动dispatch.fcgi进程,因此需要自己写脚本启动关闭dispatch.fcgi进程。lighttpd提供了一个spawn-fcgi的程序,可以用来启动dispatch.fcgi进程,监听TCP端口,你可以自己写一个shell脚本来完成这个工作。另外spawn-fcgi还可以启动dispatch.fcgi进程,创建本机的unix socket端口,和本机lighttpd通讯,例如:
例如:
执行 ./dispatch.sh start 将启动10个dispatch.fcgi进程,在/tmp/lighttpd/sock目录下面创建了10个unix socket文件,然后配置lighttpd去连接这10个socket文件:
这样做的好处是,每次重新部署应用,就不需要重起lighttpd了,只需要执行自己的dispatch.sh来重起dispatch.fcgi进程就可以了。同时也可以很好的解决上一个fastcgi进程堆积的问题。
如果远程部署,配置方式是一样的,就是lighttp连接的端口改为:
dispatch.sh创建dispatch.fcgi进程的时候,使用 -t 参数创建tcp端口,而不是 -s 创建unix socket文件即可。
8、我的rails应用不是在根目录下面,是在子目录下面怎么配置呢?
例如你的rails应用必须使用某个网站的子目录,如:http://www.xxx.com/myapp,那么只需要在lighttpd增加一项目录别名映射就可以了,例如:
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
一台机器你可以使用65535个port,用几个port你有啥难受的? 就算你不用,web server和客户端浏览器建立连接照样要用掉,JavaEye高峰时期,有超过600个并发的connection,你600多个port都给用掉了,你省这几个port有什么意义?
他的意思应该是很多端口需要配起来的话很麻烦.比如3000-3003归一个,4000-4003又归另一个.如果每个应用的访问量又不均衡又需要自己规划的话,确实比passenger烦的多.而且每个端口每个进程还需要monit.客观地说,除非是自己的站点,否则要这么细心地照料真的是一件麻烦的事情.
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
一台机器你可以使用65535个port,用几个port你有啥难受的? 就算你不用,web server和客户端浏览器建立连接照样要用掉,JavaEye高峰时期,有超过600个并发的connection,你600多个port都给用掉了,你省这几个port有什么意义?
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
升级gcc即可解决。yum install gcc
只能这样配置
一、到底我应该用Lighttpd,还是Nginx/Mongrel?
现在Nginx/Mongrel的部署方式越来越受欢迎了,很多人置疑Lighttpd/FastCGI,并且现在也涌现了一些比Mongrel性能更好的例如Thin,ebb等ruby应用服务器,那Lighttpd/FastCGI真的过时了吗?
大家有兴趣可以看一下我这篇文章:RoR部署方案深度剖析,Lighttpd提供了很多其他Web服务器不具备的优势,可以最大化FastCGI的性能。现在Mongrel/Thin/ebb都利用了一些多线程或者事件IO机制来提供并发性能,这是FastCGI所不具备的,但遗憾的是Rails框架是单线程的,最终还是必须单进程单线程来执行Rails请求,所以这些并发优势无用武之地。但一些其他Ruby的Web框架例如camping,weavers已经开始支持ruby多线程,提供了比Rails好得多的性能,mongrel/ebb只有在这些web框架上面才能发挥其性能优势。
所以只要你还是用Rails框架,Lighttpd/FastCGI就是性能最好的部署方案。
二、ubuntu Linux安装ruby碰到的缺少readline,zlib库的问题?
有些人的ubuntu安装的库不全,比方说缺少readline库,缺少zlib库,可能会导致自己手工编译安装ruby的失败,那么就用apt-get先把库安装好。
三、Lighttpd安装遇到的缺少pcre库的问题?
RHEL/CentOS用户可能要用yum安装一下pcre/pcre-devel这两个库,ubuntu用户用apt-get安装一下,Linux熟手也可以自己下载源代码编译安装,Pcre是Perl兼容的正则表达式库,Lighttpd的Rewrite功能需要它。
四、Lighttpd配置过程当中遇到的种种问题?
1、我用的是ubuntu,你说的控制脚本rc.lighttpd我跑不了,执行就会报错
如果你的Linux是ubuntu,那么需要自己创建启动脚本,lighttpd官方wiki上面已经给出来该脚本,地址在:
http://redmine.lighttpd.net/wiki/1/ScriptsUbuntu
rc.lighttpd这个脚本是针对SuSE Linux写的,此外还提供了一个rc.lighttpd.redhat是针对RedHat Linux写的,你自己写一个控制脚本,也不过是举手之劳:
#!/bin/sh case "$1" in start) /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf > /dev/null 2>&1 ;; stop) killall lighttpd ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: lighttpd.sh {start|stop|restart}" ;; esac exit 0
创建一个shell脚本,内容如上,chmod u+x lighttpd.sh,这个脚本就可以用来启动关闭和重起lighttpd了
2、启动Lighttpd的时候报错,说XXX目录找不到
Lighttpd启动之后默认情况下会写access log,error log,如果你启动了压缩过程,还会把文件压缩过的版本放在压缩目录下面,所以检查一下你的lighttpd.conf配置文件,是不是这些目录还没有,或者路径不对。
3、启动lighttpd可以访问,但如果配置了Rails,就无法启动
如果无法启动,要学会自己看Lighttpd的error log和Rails项目的log目录下面的fastcgi crash log,在这两个log文件当中可以找到出错原因。其中一种常犯的错误是:Rails项目在Windows上面创建和开发,最后部署到Linux Server上面。这种情况下dispatch.fcgi这个脚本的ruby解析器路径是 #!c:/ruby/bin/ruby.exe 这个路径在Linux上面肯定是错误的,你可以改成#!/usr/bin/env ruby,或者干脆在Linux上面创建该Rails项目。此外在windows上面创建的Rails项目,dispatch.fcgi没有可执行权限,这也需要你在Linux上面先赋予可执行权限才行。你可以尝试着手工运行该脚本cd public && ./dispatch.fcgi,看看是否可以运行。
4、启动lighttpd报错,说找不到socket路径
我在前面安装文档中给出来的配置内容如下:
$HTTP["host"] == "www.xxx.com" { server.document-root = "/yourrails/public" server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = (".fcgi" => ("localhost" => ("min-procs" => 10, "max-procs" => 10, "socket" => "/tmp/lighttpd/socket/rails.socket", "bin-path" => "/yourrails/public/dispatch.fcgi", "bin-environment" => ("RAILS_ENV" => "production") ) ) ) }
就算照抄你要改改路径吧?这个demo当中的socket路径是/tmp/lighttpd/socket/rails.socket,那你要照抄,先检查一下有没有/tmp/lighttpd/sock目录总是应该的吧?其实用啥路径都无妨,关键就是别照抄,领会原理,根据自己的环境做相应的调整。
5、lighttpd可以启动,但是访问Rails应用出现404错误,找不到页面
在lighttpd的虚拟域配置里面有一项
server.error-handler-404 = "/dispatch.fcgi"
意思是当lighttpd找不到URL对应的硬盘文件,就会调用Rails的dispatch.fcgi去处理该URL请求,这也是lighttpd访问Rails的主要方式,其性能比URL转发要快。如果你在配置文件里面忽略了这一行,lighttpd就会直接返回404错误,而不是交给Rails处理。
6、重起lighttpd以后,fastcgi进程不关闭,导致多次重起lighttpd之后,fastcgi进程堆积越来越多?
正常情况下,关闭Lighttpd以后,dispatch进程就会销毁,但是在dispatch进程处理请求的时候关闭lighttpd,dispatch进程并不会马上关闭,而是处理完毕当前请求,才会关闭掉。一些极端情况下,可能会导致dispatch进程一直不关闭,dispatch进程就会越来越多。解决办法很简单 killall -9 dispatch.fcgi,只管杀进程就好了。
7、我的lighttpd和FastCGI部署在不同的服务器,怎么配置呢?
这种情况下,Lighttpd只是连接远程服务器的TCP端口,而不负责启动dispatch.fcgi进程,因此需要自己写脚本启动关闭dispatch.fcgi进程。lighttpd提供了一个spawn-fcgi的程序,可以用来启动dispatch.fcgi进程,监听TCP端口,你可以自己写一个shell脚本来完成这个工作。另外spawn-fcgi还可以启动dispatch.fcgi进程,创建本机的unix socket端口,和本机lighttpd通讯,例如:
例如:
#!/bin/sh DISPATCH_PATH=/yourrailsapp/public/dispatch.fcgi SOCKET_PATH=/tmp/lighttpd/socket RAILS_ENV=production export RAILS_ENV case "$1" in start) for num in 0 1 2 3 4 5 6 7 8 9 do /usr/local/lighttpd/bin/spawn-fcgi -f $DISPATCH_PATH -s $SOCKET_PATH/rails.socket-$num done ;; stop) killall -9 dispatch.fcgi ;; restart) $0 stop $0 start ;; *) echo "Usage: dispatch.sh {start|stop|restart}" ;; esac exit 0
执行 ./dispatch.sh start 将启动10个dispatch.fcgi进程,在/tmp/lighttpd/sock目录下面创建了10个unix socket文件,然后配置lighttpd去连接这10个socket文件:
$HTTP["host"] =~ "www.xxx.com$" { server.document-root = "/yourrails/public" server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = (".fcgi" => ( ("socket"=>"/tmp/lighttpd/socket/rails.socket-0"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-1"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-2"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-3"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-4"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-5"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-6"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-7"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-8"), ("socket"=>"/tmp/lighttpd/socket/rails.socket-9") ) ) }
这样做的好处是,每次重新部署应用,就不需要重起lighttpd了,只需要执行自己的dispatch.sh来重起dispatch.fcgi进程就可以了。同时也可以很好的解决上一个fastcgi进程堆积的问题。
如果远程部署,配置方式是一样的,就是lighttp连接的端口改为:
("host"=>"192.168.0.1, "port"=>3001), ("host"=>"192.168.0.1, "port"=>3002), ......
dispatch.sh创建dispatch.fcgi进程的时候,使用 -t 参数创建tcp端口,而不是 -s 创建unix socket文件即可。
8、我的rails应用不是在根目录下面,是在子目录下面怎么配置呢?
例如你的rails应用必须使用某个网站的子目录,如:http://www.xxx.com/myapp,那么只需要在lighttpd增加一项目录别名映射就可以了,例如:
server.document-root = "/yourwebsite/myapp/public" alias.url = ("/myapp" => "/yourwebsite/myapp/public")
评论
11 楼
richyzhang
2009-02-28
robbin 写道
Omnibus 写道
liuqiang 写道
Mongrel的后期维护是个问题,我还是觉得mod_rails比较好
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
一台机器你可以使用65535个port,用几个port你有啥难受的? 就算你不用,web server和客户端浏览器建立连接照样要用掉,JavaEye高峰时期,有超过600个并发的connection,你600多个port都给用掉了,你省这几个port有什么意义?
他的意思应该是很多端口需要配起来的话很麻烦.比如3000-3003归一个,4000-4003又归另一个.如果每个应用的访问量又不均衡又需要自己规划的话,确实比passenger烦的多.而且每个端口每个进程还需要monit.客观地说,除非是自己的站点,否则要这么细心地照料真的是一件麻烦的事情.
10 楼
robbin
2009-02-27
Omnibus 写道
liuqiang 写道
Mongrel的后期维护是个问题,我还是觉得mod_rails比较好
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
一台机器你可以使用65535个port,用几个port你有啥难受的? 就算你不用,web server和客户端浏览器建立连接照样要用掉,JavaEye高峰时期,有超过600个并发的connection,你600多个port都给用掉了,你省这几个port有什么意义?
9 楼
Omnibus
2009-02-27
liuqiang 写道
Mongrel的后期维护是个问题,我还是觉得mod_rails比较好
Mongrel若同時有多個rails application在走,就會佔用多個port,很難管理。若然是cluster,就佔用很多port,亦要靠proxy幫手。
Thin都有類似問題,但速度比mongrel快。
8 楼
robbin
2009-02-27
http://www.iteye.com/wiki/rails_deployment/1299-lighttpd-and-ror-installation-configuration-troubleshooting#1502
我在这个文章里面提到了check-local,其实fastcgi如果分布式部署的话,就需要check-local了,这是一个挺重要的参数,等有空我整理一些lighttpd的高级配置出来。
我在这个文章里面提到了check-local,其实fastcgi如果分布式部署的话,就需要check-local了,这是一个挺重要的参数,等有空我整理一些lighttpd的高级配置出来。
7 楼
Arbow
2009-02-27
我尝试使用静态spawn这种方式来运行web.py,结果返回404。我的lighttpd版本是1.4.19。
在文中说到要加上
server.error-handler-404 = "/dispatch.fcgi"
这句,不过因为我是使用 web.py 这种轻量级的框架,原本的
"bin-path" => "/home/arbow/webpy/code.py",
而不是 rails 和 django 中都提供的 /path/to/dispatch.fcgi
经过一些尝试,发现只需要加上 "check-local" => "disable" ,也就是
("socket"=>"/tmp/fastcgi.socket-0", "check-local" => "disable"),
这样就可以了。
网上搜索了不少文章都没有找到这种提示,web.py的官方配置是使用动态spawn的。希望给后来人能够提供到帮助。
在文中说到要加上
server.error-handler-404 = "/dispatch.fcgi"
这句,不过因为我是使用 web.py 这种轻量级的框架,原本的
"bin-path" => "/home/arbow/webpy/code.py",
而不是 rails 和 django 中都提供的 /path/to/dispatch.fcgi
经过一些尝试,发现只需要加上 "check-local" => "disable" ,也就是
("socket"=>"/tmp/fastcgi.socket-0", "check-local" => "disable"),
这样就可以了。
网上搜索了不少文章都没有找到这种提示,web.py的官方配置是使用动态spawn的。希望给后来人能够提供到帮助。
6 楼
liuqiang
2008-07-11
Mongrel的后期维护是个问题,我还是觉得mod_rails比较好
5 楼
dearsuper
2008-07-11
rurukevin 写道
robbin大哥,有个问题想询问一下,我看你们也用的是x86_64位操作系统,我服务器也是64位的,但是在装RMagick的时候遇到这样的问题:./ext/RMagick/RMagick.so: libgomp.so.1: shared object cannot be dlopen()ed – /home/myusername/install/RMagick-1.15.9/./ext/RMagick/RMagick.so (LoadError)
在网上查了下,这个似乎是gcc的一个bug,是不是升级安装下gcc可以解决?你有遇到类似的问题吗?
望赐教
在网上查了下,这个似乎是gcc的一个bug,是不是升级安装下gcc可以解决?你有遇到类似的问题吗?
望赐教
升级gcc即可解决。yum install gcc
4 楼
rurukevin
2008-06-04
robbin大哥,有个问题想询问一下,我看你们也用的是x86_64位操作系统,我服务器也是64位的,但是在装RMagick的时候遇到这样的问题:./ext/RMagick/RMagick.so: libgomp.so.1: shared object cannot be dlopen()ed – /home/myusername/install/RMagick-1.15.9/./ext/RMagick/RMagick.so (LoadError)
在网上查了下,这个似乎是gcc的一个bug,是不是升级安装下gcc可以解决?你有遇到类似的问题吗?
望赐教
在网上查了下,这个似乎是gcc的一个bug,是不是升级安装下gcc可以解决?你有遇到类似的问题吗?
望赐教
3 楼
sun201200204
2008-05-26
我用的是ubuntu7.10,script/server启动lighttpd服务,启动一起正常,日志里也没什么错误提示。
我结束服务的时候,出现下面的提示:
Couldn't find any pid file in '/u/apps/project/current/tmp/pids'
matching 'dispatch.[0-9]*.pid'
(also looked for process matching "/u/apps/project/current/public/dispatch.fcgi")
是什么问题?
我发在http://www.iteye.com/post/556454,不知道怎么给我发到入门了,也没有人理睬。
还请指教一下。
我结束服务的时候,出现下面的提示:
Couldn't find any pid file in '/u/apps/project/current/tmp/pids'
matching 'dispatch.[0-9]*.pid'
(also looked for process matching "/u/apps/project/current/public/dispatch.fcgi")
是什么问题?
我发在http://www.iteye.com/post/556454,不知道怎么给我发到入门了,也没有人理睬。
还请指教一下。
2 楼
robbin
2008-03-10
inosin 写道
如果配置其他选项是不是需要这样:
...
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-0"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-1"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-2"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-3"),
...
有没有便捷点的方法?
...
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-0"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-1"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-2"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-3"),
...
有没有便捷点的方法?
只能这样配置
1 楼
inosin
2008-03-07
如果配置其他选项是不是需要这样:
...
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-0"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-1"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-2"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-3"),
...
有没有便捷点的方法?
...
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-0"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-1"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-2"),
("allow-x-send-file"=>"enable", "socket"=>"/tmp/lighttpd/socket/rails.socket-3"),
...
有没有便捷点的方法?
发表评论
-
《松本行弘的程序世界》推荐序
2011-07-21 13:47 15314在流行的编程语言中,ruby是一个比较另类的存在,这是因为大多 ... -
从Rails聊聊小公司的研发团队建设
2011-03-23 10:49 37236首先分享一点数据吧: JavaEye的PV到了140万了,一 ... -
Ruby作为服务器端应用已经成熟了
2009-11-17 14:55 15982JavaEye网站在过去的Ruby on rails实践当中, ... -
基于资源的HTTP Cache的实现介绍
2009-09-05 00:27 17079我们都知道浏览器会缓 ... -
请注意Rails2.3自带的memcache-client有性能问题
2009-03-23 18:05 14522Rails2.3版本发布了,这个版本内部的改动非常大,相关介绍 ... -
监视Rails进程内存泄漏的技巧
2008-12-30 21:56 10975Rails应用比较容易遇到的两类性能问题:一类是Rails执行 ... -
ruby MBARI大补丁性能评测报告
2008-12-23 12:19 5075JavaEye之前的新闻ruby内存泄漏的罪魁祸首 - 幽灵指 ... -
在top监视窗口显示Rails当前正在执行的请求URL
2008-12-01 14:15 9864这是一个从PragDave的博客上面学来的技巧,很实用,很co ... -
对Ruby VM的GC的思考
2008-09-02 23:41 8990Ruby虽然是动态脚本语言 ... -
推荐一篇很好的RoR部署方案性能评测
2008-07-08 11:55 9687今年年初的时候,我写了一篇RoR部署方案深度剖析的文章,分析了 ... -
Ruby和Rails的缺点
2008-06-25 21:08 17411有人说,robbin你说了那么多RoR的优点,你啥时候说说Ro ... -
Skynet --- ruby的类Google Map/Reduce框架
2008-06-02 00:39 8303Skynet是一个很响亮的名 ... -
rmmseg-cpp - 简洁高效的ruby中文分词程序
2008-05-27 00:47 11243我在前一篇文章向大家 ... -
使用libmmseg实现Ruby的中文分词功能
2008-05-24 21:43 11339用Ruby on Rails开发web2.0网站的人都知道,r ... -
mod_rails尝鲜
2008-04-13 14:32 8086Passenger(俗称mod_rails)是 ... -
JavaEye网站的RoR性能优化经验谈
2008-01-20 16:11 18472JavaEye网站从2006年9月11 ... -
RoR部署方案深度剖析
2008-01-14 03:10 14816RoR的部署方案可谓五花八门,有Apache/Fastcgi方 ... -
RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能
2008-01-12 17:45 10274传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应 ... -
Ruby为什么会受程序员的欢迎?
2008-01-07 20:08 15755孟岩最近写了一篇博客 ... -
Ruby on Rails 2.0的新特性介绍
2007-12-10 21:32 15636万众瞩目的Ruby on Rails 2.0已经发布了,Rai ...
相关推荐
本文将详细介绍Lighttpd的安装与配置流程,重点涵盖pcre库的安装以及如何配置Lighttpd以支持复杂的正则表达式和Ruby语言。 #### 二、安装前准备:pcre库 pcre(Perl Compatible Regular Expressions)库提供了与...
在安装并解压提供的"lighttpd"压缩包后,你需要根据自己的Rails应用配置修改模板中的参数。这可能涉及到修改Rails应用的根路径、设置环境变量(如RAILS_ENV)以及调整FastCGI进程的数量以适应你的服务器资源。 同时...
在本压缩包中,我们重点关注`lighttpd.conf`配置文件以及用于控制Web服务器启动和停止的脚本。下面我们将深入探讨这两个核心元素。 一、lighttpd.conf配置文件详解 1. **基本设置**:`server.document-root` 指定...
在Linux上安装Lighttpd,里面有遇到的一些问题的解决方法,整个安装流程,还有参考网站
本文将详细介绍如何在CentOS 6.x系统上安装并配置lighttpd。 1. **支持平台与编译环境** Lighttpd适用于多种操作系统平台,包括但不限于Linux(如FC3、SuSE、Debian、Gentoo、PLD-Linux和OpenWRT)、*BSD(FreeBSD...
3. **安全设置**:确保Varnish和Lighttpd的安全配置,避免被攻击。 4. **日志分析**:定期分析Varnish和Lighttpd的日志,找出性能瓶颈和优化点。 通过Varnish和Lighttpd的组合,你可以构建一个高效、灵活的Web...
在Windows上安装lighttpd,你需要下载适合的二进制版本,然后配置lighttpd.conf文件以指定服务器监听的端口、文档根目录和其他服务器设置。配置完成后,通过命令行启动lighttpd服务。 接着,FastCGI是一种让交互式...
交叉编译最新版的lighttpd-1.4.55,配置与测试CGI与HTML.内含 lighttpd-1.4.55源码,移植教程,cgi测试代码,html测试代码.测试cgi时,浏览器中应该输入192.168.100.30/cgi-bin/xx.cgi .其中 192.168.100.30为开发板的ip
#### 三、编译和安装lighttpd 1. **编译lighttpd**: - 使用`./configure --prefix=/usr/local/lighttpd`来进行配置。 - 然后执行`make && make install`来编译并安装lighttpd到指定路径。 2. **检查启用模块**...
5. **配置与易用性**:Nginx的配置文件更为直观易懂,但对于新手来说,Lighttpd的配置过程可能更为简单。 综上所述,选择Lighttpd还是Nginx取决于具体的项目需求和个人偏好。如果对资源占用有极高的要求,或者希望...
OS: CentOS release 5.5 Lighttpd: 1.4.28 安装 sudo yum install lighttpd.i386 lighttpd-fastcgi.i386 lighttpd-mod_mysql_vhost.i386 运行 检查配置文件 lighttpd -t -f lighttpd.conf 启动lighttpd服务 ...
压缩包文件`lighttpd_cgi`可能包含示例CGI脚本、lighttpd配置示例以及其他辅助文件,用于帮助初学者更好地理解和实践lighttpd与CGI的结合使用。解压并研究这些文件,可以帮助你深入理解这一过程。 总结,通过上述...
5. **安装lighttpd**:编译完成后,使用`sudo make install`将lighttpd及其配置文件安装到系统默认的位置,如`/usr/local/sbin`和`/etc/lighttpd`。 6. **配置lighttpd**:lighttpd的配置文件通常位于`/etc/...
3、首先配置lighttpd.conf 修改为自己的工作路径 var.server_root = "/home/caoft/lighttpd/lighttpd_websocket/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket/http_server" var.home_dir...
通过上述步骤,您可以在 Ubuntu 15.04 或 CentOS 7 上成功安装并配置 Lighttpd Web 服务器。Lighttpd 提供了一种轻量级、高效的解决方案,特别适用于对性能有较高要求的应用场景。无论是简单的静态网站还是复杂的...
在设置和配置lighttpd服务器时,需要注意以下几点: 1. **安装lighttpd**: 在ARM平台上,通常需要通过包管理器(如`apt-get`或`yum`)来安装lighttpd。确保系统已更新,并根据具体操作系统执行相应的安装命令。 2....
《lighttpd-1.4.59:轻量级HTTP服务器的安装与配置详解》 lighttpd,一个在互联网领域广泛应用的轻量级Web服务器,因其高效、安全、易扩展的...了解并熟练掌握其安装和配置,对于提升网站的效率和安全性具有重要意义。
3. **编译和安装**:应用补丁后,需要重新编译lighttpd源代码。这通常包括运行`./configure`,`make`和`make install`等命令。确保在编译过程中指定任何必要的配置选项,以满足你的服务器需求。 4. **配置lighttpd*...
在解压后的目录中,执行以下步骤来编译和安装lighttpd: ``` ./configure --prefix=/usr/local/lighttpd make sudo make install ``` 4. **配置lighttpd** lighttpd的配置文件通常位于`/etc/lighttpd/...