我有需要部署Rails 3应用程序,使用RVM和gemsets,并期待“公共”的stream量(即这不是一个只有内部的应用程序)。 我也必须使用Apache作为我的应用程序的公共接口。 我知道Passenger Standalone可以帮助完成rails / RVM的terminal,而且我已经成功地将其设置在我的开发环境中。 我的问题是这个设置是如何可行的生产部署。 是通过configuration为ReverseProxy Apache部署到我的乘客驱动的Rails应用程序会产生问题吗? 由于我正在devise生产部署,所以我想了解是否应该花费额外的时间来设置Passenger连接到Apache,并让 Passenger与运行我的Rails应用程序的Passenger Standalone实例通信。 所以,我正在寻找一个我猜想三个答案: 阿帕奇反向代客户独立将通常很好 你不应该使用Apache / Passenger Standaloneconfiguration,而是在Apache端设置Passenger 您的整个设置是错误的,请RTFM(并包括链接到“FM”)
我使用nginx在Rails站点上运行AWStats,并且有像这样访问的页面 http://mysite.com/order/receipt/[receipt_tag] 我希望AWStats将它们显示为页面/order/receipt/* x个点击,而不是针对[标签x]的1个匹配,以及针对[标签y]的1个匹配等等。 我发现最接近的指令是URLWithQueryWithoutFollowingParameters ,但由于我使用URLWithQueryWithoutFollowingParameters作为path组件,我不认为这适用。 同样的问题,但(可能)更常见的情况是将ID组合成一个页面。 所以/admin/orders/[order_id]应该被报告为/admin/orders/*而不是/admin/orders/1和/admin/orders/2等。 那可能吗?
我在bluevm.com买了一个多年的订阅(发现了一些优惠券代码,全年只有15美元左右)来推出我的第一个Rails Production服务器。 我在Ubuntu 13.04上运行Nginx和Unicorn和MySQL。 一旦我获得了初始的服务器configuration设置,服务器将在我运行rails独angular兽时运行,并将其指向我的configuration文件,并将其作为守护程序进程运行,但随机访问它时,URL(我正在使用cloudfare for DNS)我得到一个CentOS apachetesting页面? 这导致我相信VPS出了问题(因为CentOS是他们用来托pipeVPS的),在我看到这个testing页面时,在生产或nginx日志中找不到任何可能表明问题的东西。 他们的支持说,这个问题在我身上呢? 不知道从哪里去。 不能告诉是否只是便宜的托pipe导致我的问题或什么? 服务器统计:512MB RAM 512MB swap 2GB / 25GB硬盘使用1TB带宽 我能想到的唯一的事情是,我正在得到某种DDOS攻击或者是服务器崩溃? 我试图设置ufw,但不知道它是否实际上工作(想要阻止所有stream量,除了80和4321,这是ssh运行的端口) 当我注意到服务器正在显示CentOS apachetesting页面而不是rails应用程序时,当我尝试ssh进入VPS时,出现“连接被拒绝” 我试图find一个关于build立一个VPS for Rails 4的简明指南,但找不到一个完整的综合指南,而且我不确定问题是否与我或VPS 任何投入将不胜感激!
我通过这个问题尝试了我在Google中find的所有内容,但没有任何结果。 反正它不起作用。 我的NGINX默认: upstream app { server unix:/tmp/unicorn.rails.sock fail_timeout=0; } server { listen 80; root /home/rails/public; server_name _; index index.htm index.html; location / { try_files $uri/index.html $uri.html $uri @app; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ { try_files $uri @app; } location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app; } } NGINX错误日志: *12 […]
我正在双核心AMD Athlon 4450e服务器上运行RoR Web应用程序(带有8GB RAM和Ubuntu)。 它没有问题,每分钟可以达到320个dynamic请求,它还处理所有的资源,包括提供一些更大的video文件。 我在主机上运行Apache w / Passenger和MySQL。 性能还是相当一致的,但是我看到负载平均值在负载较高的时段开始超过1,CPU负载达到40或50%。 我可以买一台额外的电脑和一个四核心系统,8GB内存符合我的预算。 我应该把目前的盒子变成数据库服务器,并把它作为一个Web服务器的前面的四核? 将四核作为数据库服务器和Web服务器运行并保持现有双核运行在另一个Web服务器旁边会更好吗? 任何其他的服务器布局,我应该考虑? 下面是负载下服务器的快照: 服务器负载http://img.skitch.com/20100208-jhk11btcb43yg4mhd75ecinqqr.png 谢谢, -Tim
我有一个在Passenger 3.0.9下使用Rails 3.1运行nginx 1.0.5的临时服务器。 问题是,在发生应用程序错误的地方发送一个请求后,返回502 Bad Gateway 。 为了testing它,我设置了一个简单的控制器,其中一个动作就是引发一个虚拟的exception。 一个请求将显示Rails错误消息,下一个将显示nginx 502 Bad Gateway错误,然后返回到Rails应用程序错误等。 在调查这个问题时,我发现负载testing应用程序(增加了应用程序的数量)使得这个问题消失了。 这是直到额外的进程closures,然后重新出现。 我已经尝试设置passenger_min_instances选项,但这样做不会改变任何东西,并在这种情况下,每次发生应用程序错误时,一个实例被终止,而负载testing后,所有实例保持活着。 PS:我的团队中的一些人告诉我,他们已经看到了502错误,即使没有应用程序错误,但我还没有能够重现这一点。 更新 :刚刚发现如何显示使用ab的响应状态代码,其中大部分是502!
有没有人有幸使用SSLconfigurationPassenger和nginx? 我花了好几个小时的时间试图让这个configuration能够正常工作,在网上使用了很less的资源,而且我不能在Rails控制器中显示任何转发的头文件。 例如,使用以下(及其多个变体)的conf文件: server { listen 3000; server_name .example.com; root /Users/website/public; passenger_enabled on; rails_env development; } server { listen 3443; root /Users/website/public; rails_env development; passenger_enabled on; ssl on; #ssl_verify_client on; ssl_certificate /Users/website/ssl/server.crt; ssl_certificate_key /Users/website/ssl/server.key; #ssl_client_certificate /Users/website/ssl/CA.crt; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; […]
我一直在寻找,或者我找不到任何东西,或者我找不到任何有效的东西…所以我就在这里。 我怎样才能设置关于Mongrel的SSL / HTTPS? 提前致谢!
所以我已经看过了我可以find的每个示例configuration,但是每次尝试查看需要ssl的页面时,我都会在redirect循环中结束。 我运行nginx / 0.8.53和乘客3.0.2。 这里是sslconfiguration server { listen 443 default ssl; server_name <redacted>.com www.<redacted>.com; root /home/app/<redacted>/public; passenger_enabled on; rails_env production; ssl_certificate /home/app/ssl/<redacted>.com.pem; ssl_certificate_key /home/app/ssl/<redacted>.key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Url-Scheme $scheme; proxy_redirect off; proxy_max_temp_file_size 0; location /blog { rewrite ^/blog(/.*)?$ http://blog.<redacted>.com/$1 permanent; } location ~* \.(js|css|jpg|jpeg|gif|png)$ { […]
有一个相当复杂的应用程序比运行在两个虚拟机上(在Xen上)。 两台虚拟机都运行CentOS 6.2,每个运行的应用程序都有完全相同的包和configuration(减去不同的networking)。 两者都禁用SELinux。 在机器A上,应用程序完美地构build。 在机器B上运行一些testing时,我们得到: ruby [2010]陷阱无效操作码ip:7ff9d2944c30 sp:7fff9797e0f8错误:0在ld-2.12.so [7ff9d2930000 + 20000] 机器A挖掘更多一点,以找出机器的不同之处: 型号名称:六核AMD Opteron(tm)处理器2423 HE 和机器B: 型号名称:AMD Opteron(TM)处理器6272 我试过用grub中的cpuid_mask_cpu=fam_10_rev_c启动机器B,但是也没有帮助。 所以,如何处理这个问题,或者如何接近主机提供商以便在另一台物理机器上运行这个VM,我们将不胜感激。