nginx + passenger + sqlite3在Pi上获得502坏网关

时间:2013-09-20 04:59:09

标签: ruby-on-rails git nginx passenger

n00b到RoR这里。我正在使用git clone将应用程序从我的mac移动到我的覆盆子pi上。克隆发生后,我做到了 bundle install

然后我安装了乘客和nginx:

gem install passenger
rvmsudo passenger-install-nginx-module

设置数据库并播种

rvmsudo rake db:setup RAILS_ENV=production

然后按照指南设置nginx以在启动时加载。复制/粘贴nginx文件

sudo cp /var/www/monsterpi/nginx /etc/init.d/

在配置文件中进行了更改

sudo nano /opt/nginx/conf/nginx.conf

看起来像这样

    server { 
    listen 80; 
    server_name monsterpi.kendrickcoleman.c0m; 
    passenger_enabled on; 
    root /var/www/monsterpi/public; 
    error_log /var/log/nginxerror.log;
    access_log /var/log/nginxaccess.log;
     }

然后运行这些命令来完成它

sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d nginx defaults
sudo /etc/init.d/nginx start

当我在monsterpi.kendrickcoleman.c0m访问我的服务器时,它可以工作。我可以看到我的静态主页。但是,当我添加或编辑数据库条目时,我得到一个502 Bad Gateway | nginx / 1.4.2错误页面。

在查看production.log时,乘客正在加载编辑页面 我,[2013-09-20T04:19:06.355495#2619]信息 - :开始获取“/ rasberry_pis / 1 / edit”for 192.168.10.112 at 2013-09-20 04:19:06 +0000 I,[2013-09-20T04:19:06.373544#2619]信息 - :由RasberryPisController处理#edit as HTML I,[2013-09-20T04:19:06.376013#2619]信息 - :参数:{“id”=>“1”} I,[2013-09-20T04:19:06.509689#2619]信息 - :渲染rasberry_pis / _form.html.erb(100.2ms) I,[2013-09-20T04:19:06.521555#2619]信息 - :在布局/应用程序中渲染rasberry_pis / edit.html.erb(114.4ms) I,[2013-09-20T04:19:06.545626#2619]信息 - :渲染的布局/ _header.html.erb(9.1ms) I,[2013-09-20T04:19:06.555961#2619]信息 - :渲染的布局/ _footer.html.erb(5.1ms) I,[2013-09-20T04:19:06.561765#2619]信息 - :在182ms完成200 OK(浏览次数:158.2ms | ActiveRecord:2.2ms)

只要按下“提交”按钮,乘客日志就不再包含任何条目。将显示502 Bad Gateway页面。每次单击“提交”时,nginxerror.log都会填充一个条目。

2013/09/20 04:19:11 [错误] 2253#0:* 17上游过早关闭连接,同时从上游读取响应头,客户端:192.168.10.112,服务器:monsterpi.kendrickcoleman.c0m,请求:“ POST / rasberry_pis / 1 HTTP / 1.1“,上游:”passenger:/tmp/passenger.1.0.2207/generation-0/request:“,主持人:”monsterpi.kendrickcoleman.c0m“,推荐人:”http://monsterpi.kendrickcoleman.c0m/rasberry_pis/1/edit

我已将我的database.yml更改为让sqlite3指向绝对路径

production:
  adapter: sqlite3
  database: /var/www/monsterpi/db/production.sqlite3
  pool: 5
  timeout: 5000

一切都与rails s -e production完美配合 我用Google搜索,似乎无法找到答案。任何帮助表示赞赏。感谢

1 个答案:

答案 0 :(得分:0)

因此,在处理完这个问题之后,我最终抓住了乘客并且变得瘦弱了。我认为问题在于Raspberry Pi没有足够的可用内存。此外,瘦更容易配置。使用thin,我在几分钟内运行。我现在正在为需要在自己的服务器上部署的所有rails应用程序使用这种类型的设置。

我详细介绍了如何在项目主页上创建nginx + thin配置的步骤。从第3步开始,我将讨论如何安装瘦导轨服务器。根据您计划使用的精简实例数量,更改配置以用于您自己的目的。

http://kendrickcoleman.com/index.php/Ruby-on-Rails-Projects/introducing-the-monsterremote-for-the-monstershield.html