我正在尝试部署 / opt / rails / my_app 中的铁路应用程序。 为实现这一目标,我已经使用 passenger-install-nginx-module 安装了乘客gem和配置的nginx。我可以访问静态欢迎页面,但是当我尝试像home这样的其他页面(由rails生成控制器主索引生成)时,浏览器会一直等待并等待响应。
当我在端口3000上使用rails s
部署应用程序时,不会发生这种情况。
更新
当我执行passenger-install-apache2-module
时,我得到 g ++:无法识别的选项'-R / usr / local / lib'。我想我需要将'-R / usr / local / lib'更改为'Wl,-R / usr / local / lib'才能正确编译LoggingAgent。你能告诉我如何更改make文件吗?
答案 0 :(得分:0)
关于NGINX,听起来好像是某些文件和/或目录的权限问题。我会将应用程序移动到专用/主目录。例如,如果你有一个名为tester的用户,你的nginx.conf就会说(以下内容适用于我的生产:
server {
listen YOURIPADDRESSHERE:80; #use :443 if SSL is being used.
server_name YOURFULLDOMAINNAMEHERE;
#uncomment out following if ssl is used.
#ssl on;
#ssl_certificate /etc/ssl/private/YOUR_chained.crt;
#ssl_certificate_key /etc/ssl/private/YOUR.key;
#ssl_session_cache shared:SSL:1m;
#ssl_session_timeout 5m;
#ssl_protocols SSLv3 TLSv1;
#ssl_ciphers HIGH:MEDIUM;
#ssl_prefer_server_ciphers on;
root /home/tester/YOURRAILSAPPNAME/public; # <--- be sure to point to 'public'!
passenger_enabled on;
charset utf-8;
access_log /var/log/nginx/YOURFULLDOMAINNAMEHERE-ssl_access.log;
error_log /var/log/nginx/YOURFULLDOMAINNAMEHERE-ssl_error.log warn;
location /home/tester/YOURRAILSAPPNAME/public/ {
root html;
index index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
然后确保您的权限是正确的(所有文件为755,目录为644)。
答案 1 :(得分:0)
在之前的工作中,我花了很多时间将Rails应用程序部署到具有不同配置和gem的vps生产中,最终在9个月之前,我发现了hatchbox.io服务,用于部署Rails应用程序。它是由GoRails的Chris创建的,相信我为我节省了很多时间和精力。这不是广告,但实际上服务效果完美,而且价格不菲。