如题,请各位前辈能不能帮我看看。非常感谢。 源码地址:https://github.com/runup/cims_final 环境:ubuntu13.04 sqlite3 ruby1.9.3 rails 3.2.13 部署:
rake sunspot:solr:start
rale snspot:reindex
rails s
#1 楼 @lgn21st 谢谢前辈,我是新手,不太懂你说的问题,我的源码已经提供,能不能帮我看一下,非常感谢。我参考了http://bbs.csdn.net/topics/250062649 但是不太理解,求帮助。
我认为代码问题是可以排除的,因为你也说了,在本地很快。
我也碰到过这种情况,貌似 webrick 的问题,后来换成 thin 就快了,Gemfile 增加
gem 'thin'
然后
bundle install
rails s
再用 ip 访问就快了。 不过我个人更愿意用 apache + passenger 来部署开发环境。
#7 楼 @runup 我上面提到的 ssl 是一个例子,证明有些问题你不去查 log 是无法发现的。
用 dev 问题也不大,你看一下这个帖子,看是否对你有帮助: http://stackoverflow.com/questions/4296921/access-webrick-from-a-different-pc
你如果是 rails s
ENV 是 development 方式启动起来给大家访问,应该会碰到很慢的情况,首先你只有一个 process, 然后你的 assets 没有 compile 过,有可能有时候会重新 live 的 compile assets, 另外你 assets 都要从你的 webrick 来 serve, 没有 compile 的每个 assets 都是一个 request.
这些都是会导致比较慢的情况,也就是为啥要有dev
和prd
之分了。
真的想用的话,还是局域网里找个服务器 nginx + unicorn/passenger 部署一下吧,花不了多少时间。
建议先别管各种部署方案,那样就把问题变复杂了。
导致缓慢无非两个因素:本机响应能力
和 网络
本机响应能力:用 production 模式启动服务器( RAILS_ENV=production rails s
即可),然后看你的应用日志,rails 日志会对每条请求记录耗时,研究一下看看是否有特别长的记录。
网络:用浏览器的相关功能进行分析,例如 chrome,按 F12,看 network 这个 tab 里面的信息,关键是每个请求的 timeline,比如 DNSLookup、Connection 信息,然后你就知道原因了
#21 楼 @runup 正好等锅里焖的肉,简单写一下基本步骤吧,环境 ubuntu 13.04,apache2,ruby2.0.0 1.安装 passenger
gem install passenger
2.安装 apache mod_passenger
### 如果系统缺少某些包按提示apt-get安装即可
passenger-install-apache2-module
3.创建 apache 模块配置文件,注意修改 passenger 的路径
###/etc/apache2/mods-available/passeneger.load
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4
.0.19/buildout/apache2/mod_passenger.so
###/etc/apache2/mods-available/passeneger.conf
<IfModule passenger_module>
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby
</IfModule>
然后执行一下命令启用一下 mod_passenger
sudo a2enmod passenger
4,更改 site 文件,如果直接用 ip 访问。直接改 /etc/apache2/sites-available/default 文件
###/etc/apache2/sites-available/default
# rails env
RackENV development
DocumentRoot /your_rails_path/public #注意是public目录
<Directory /your_rails_path/public>
AllowOverride all
Options -MultiViews #这个一定要有
</Directory>
重启 apache,完成。
sudo service apache2 restart