我看过其他类似的问题,但没有一个答案满意,所以这里就是了。 我已经安装了Ruby,Rails,Nginx和Passenger,并试图将其configuration为一起工作。 这是/opt/nginx/conf/nginx.conf的相关部分 server { listen 80; server_name .myapp.dev; # There is an entry in my local /etc/hosts file for this passenger_enabled on; root /srv/www/myapp.dev/public; access_log /srv/www/myapp.dev/logs/access_log; error_log /srv/www/myapp.dev/logs/error_log warn; } 有另一个server块,但是这是监听localhost所以我不认为这是造成任何问题。 这里是ls -la /srv/www/myapp.dev/的输出 drwxr-xr-x 3 josh josh 4096 Dec 4 19:12 . drwxr-xr-x 3 josh josh 4096 Dec 4 18:34 .. drwxr-xr-x 2 […]
我正在设置一个服务器,使用瘦服务器上的Ruby on Rails。 我build立了Nginx将所有的http://mysite.comredirect到https://mysite.com (使用ssl)。 我希望网页上的所有networkingstream量都是SSL,没有例外。 这很好,但令我困扰的是,如果有人写http://mysite.com:3000 ,这正好是我运行我的服务器的端口,仍然可以访问我的瘦服务器没有SSL。 (我实际上在端口3000,3001上有几台服务器…)。 有没有办法阻止这个,或重写到https://mysite.com就像我做的端口80? 我试图重复我在端口80上做什么,但我得到错误,说它已经在使用。 这是我的nginxconfiguration。 upstream mysite.com { server 127.0.0.1:3000; server 127.0.0.1:3001; server 127.0.0.1:3002; } ##THIS WORKS: server { listen 80 default; server_name mysite.com *.mysite.com; ## redirect http to https ## return 301 https://mysite.com$request_uri; } ##THIS FAILS with "Address already in use" server { listen 3000; server_name mysite.com […]
我运行nginx和独angular兽服务于Rails应用程序。 独angular兽和Rails应用程序工作正常,但nginx无法打开rails公共目录与权限错误,并返回502错误的网关。 curl http://localhost/ <html> <head><title>502 Bad Gateway</title></head> <body bgcolor="white"> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx/1.6.1</center> </body> </html> 无功/日志/ nginx的/ error.log中 014/09/18 18:16:16 [crit] 16619#0: *1 stat() "/home/rails/public_html/rails_app/current/public//index.html" failed (13: Permission denied), client: 127.0.0.1, server: , request: "GET / HTTP/1.1", host: "localhost" 2014/09/18 18:16:16 [crit] 16619#0: *1 stat() "/home/rails/public_html/rails_app/current/public/" failed (13: Permission denied), client: 127.0.0.1, server: , […]
目前,我在一台服务器上运行带有MySQL的Rails 3 Web应用程序,在第二台服务器上运行Rails API应用程序,从第一台服务器连接到MySQL数据库。 我不高兴的API依赖于从第一台服务器的数据库,并决定去复制/集群,但我不知道什么是我的情况下最好的select? 主从复制,我们的api不是只读的,它也写了很多信息,所以看起来并不那么明亮。 主 – 主复制,也害怕数据不一致,因为它可能不同步。 MySQL集群 – 这似乎是对我来说最好的select,但我不知道是否值得只有2个节点的集群? 如果一个节点出现故障,是不是意味着一旦它上线并将消耗第二个节点作为捐助者,整个集群将不可用? 我怎样才能避免这一点? 你觉得我在这里最好的select是什么?
我正在Digital Ocean部署一个Rails应用程序( Fedena项目 )给VPS。 我可以使用mongrel_rails start和ruby script/server启动我的应用程序没有问题。 它绑定到端口:3000,我可以根据需要使用该应用程序。 问题是用Phusion Passenger,但是我已经安装了gemgem install passenger但是当我运行passenger start从我的Rails应用程序根目录开始时,有一个权限问题,似乎并不是Mongrel或Webrick的情况: =============== Phusion Passenger Standalone web server started =============== PID file: /root/fedena/tmp/pids/passenger.80.pid Log file: /root/fedena/log/passenger.80.log Environment: production Accessible via: http://0.0.0.0:3000/ You can stop Phusion Passenger Standalone by pressing Ctrl-C. Problems? Check https://www.phusionpassenger.com/documentation/Users%20guide%20Standalone.html#troubleshooting =============================================================================== 2015/03/08 01:35:03 [error] 18827#0: *4 directory index of "/root/fedena/public/" is […]
我有5个Ruby on Rails Web应用程序,我想从一个Azure Linux VM中运行它们以节省开支。 其实我想把它们作为Web Apps来运行,但是Ruby on Rails还不支持。 我可以运行其中的一个,并将公共端口80分配给私有端口3000.然后,我已将子域demo1.example.com分配给myapp.cloudapp.net并完美工作。 我应该如何处理其余的部分,以便他们可以从demo2.example.com等访问?
我有2个EC2实例 – 一个是生产应用程序,另一个是Redis。 我从第一个连接到Redis。 这是我如何设置Sidekiq: Sidekiq.configure_server do |config| config.redis = { url: "redis://deployer_redis@PUBLIC_IP:6379/#{env_num}", namespace: "rails_app_#{Rails.env}" } end Sidekiq.configure_client do |config| config.redis = { url: "redis://deployer_redis@PUBLIC_IP:6379/#{env_num}", namespace: "rails_app_#{Rails.env}" } end 当我重新启动Redis实例时,PUBLIC_IP将会不同,Rails应用程序将无法连接到Redis。 我试图使用PRIVATE_IP而不是PUBLIC_IP(因为PRIVATE_IP不会改变),但它不起作用。 没有错误,但只是工作没有处理。 build议在应用程序中设置EC2实例的IP的方法是什么? 编辑: 另外,当我SSH服务器,我应该使用哪个IP?
我目前有一个运行在Apache上的应用程序。 它使用子域在用户帐户之间破坏。 我想添加SSL支持(通配符)。 一个相当普遍的解决scheme似乎是以下(只使用两个虚拟主机)。 <VirtualHost *:80> # sauron.com # some other app </VirtualHost> <VirtualHost *:80> # *.frodo.com Include app.conf </VirtualHost> <VirtualHost *:443> Include a file SSLEngine On … </VirtualHost> 不过,我宁愿在*:80虚拟主机前面有一个SSL代理。 我运行了跨越mod_proxy但我发现的样本不处理子域(或只有手动configuration每个子域)。 user1.frodo.com:433 -> user1.frodo.com:80 userX.frodo.com:433 -> user1.frodo.com:80 任何想法如何用Apache代理实现这一点? 还是应该使用额外的代理服务器(nginx?)呢? 那么是否有任何样本configuration(找不到这个nginx子域的情况下)?
题 我怀疑有一个无法解释的1600%的交通stream量增长和持续10分钟左右的巨大减速。 我不确定这是否是一个尝试的DoS攻击,字典login攻击等。无论如何,我应该采取什么行动来监视我的服务器(我应该看哪些日志,我应该使用什么工具等),以确保没有什么恶毒发生? 我应该在未来的减速过程中采取哪些措施? 有没有一个标准的方式让服务器在这样的stream量激增期间提醒我? 所有的血淋淋的细节: 我的一个客户今天凌晨1点左右报告了一个没有响应的网站(Ruby on Rails通过Apache,Mongrel和CentOS 5盒子上的mongrel_cluster)。 当我在1:15收到邮件时,我处于完整的故障排除模式。 ssh和加载网页确实非常慢,但ping输出看起来很好(78毫秒),从我的工作站在丹佛的traceroute在从达拉斯到菲尼克斯的服务器中途的某一跳上显示缓慢的时间(1611.978 ms 195.539女士)。 5分钟后,该网站作出反应, traceroute现在正在通过圣何塞路由到凤凰城。 我找不到任何明显的错误 – 系统负载看起来相当合理(0.05 0.07 0.09),我认为这只是一个networking问题。 为了安全起见,我重启了机器。 几个小时后,我loginGoogle Analytics(分析),查看当天的情况。 我有一个巨大的点击率:通常这个站点平均每小时访问6次,但在1点我得到了130(增加了1600%)! 几乎所有这些命中似乎来自世界各地的101个不同的主机。 每个访问者都在网站上0秒,每次访问是直接的(即它不像网页slashdotted),每次访问是一个反弹。 从大约1:30开始,事情进展顺利,每小时平均回访6次。 免责声明: 我是一个代码开发人员(不是系统pipe理员),他必须为运行我编写的代码的机器维护Web服务器。
所有, 思考完后,我们打算购买SSL证书。 由于SSL证书的成本非常高昂,您是否可以分享您在使用nginx的SSL证书方面的经验? 我打算运行Ruby on Rails应用程序。 Apache2将是我的最后一招。 感谢你的分享。 真的很感激。