当我开发networking应用程序时,我有时必须将完整的URL硬编码到我生成的标记中。 即使通常可以通过使用相对URL一拉 <a href="/path/to/something">Something</a> 当我必须指向另一个服务器或协议时,事情会变得更加复杂 <a href="https://www.example.com/path/to/something">Something Secure</a> 这使得在Windows上运行我的webapp的开发版本变得更加困难,因为我经常修改我的主机文件来覆盖DNS。 我的问题是,是否有更好的工具来修改主机文件,以覆盖我可能通过DNS获得的东西。 我正在考虑为本地Web应用程序开发devise一个简单的DNS服务器。 我四处搜寻,一直没有find好的东西。 尽pipe这并不重要,但只要我用Ruby开发(虽然不一定是Rails)并在CentOS上部署生产版本。 我的开发机器必须保持Windows。 谢谢!
我得到当前安装了两个应用程序的服务器,我需要添加另一个,这里是我的configuration。 nginx.conf user www-data www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Disable unknown domains ## server { listen 80 default; server_name _; […]
我已经build立了nginx(下面的nginx.conf)和瘦。 nginx和瘦(2服务器)都在运行(我检查他们正在运行)。 我可以在rails公共目录(如index.html)中访问一个静态页面,但是如果我放入任何其他的url,我会得到一个由nginx生成的500页,“我们很抱歉,但出了问题。 任何帮助我做错了赞赏。 我想能够访问rails应用程序。 http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 30; #gzip on; # Load config files from the /etc/nginx/conf.d directory # The default server is in conf.d/default.conf include /etc/nginx/conf.d/*.conf; […]
我正在使用Capistrano将Ruby on Rails应用程序部署到服务器。 一切正在运行,直到捆绑安装被调用的时候,在这种情况下,我得到错误“一些gem似乎从你的供应商/caching目录中缺less。 这个错误是由于在Capistrano克隆的git仓库的vendor / cache目录中检查了一些gems。 我知道最好的方法是清理git仓库,但由于这不是我的select,我希望Capistrano删除git克隆之后,但在捆绑调用之前在远程服务器上的供应商/caching目录。 我已经手动运行的步骤,发现通过手动删除目录捆绑执行正确,但我似乎无法弄清楚如何让Capistrano执行删除。 这是从我的deploy.rb文件相关的片段: after "deploy:update_code" do run "rm -rf #{release_path}/vendor/cache" end after "deploy:update_code", "bundle:install" 这里是命令行输出 executing `deploy:update_code' executing locally: "git ls-remote my_git_repository HEAD" command finished in xxxms * executing "git clone [snipped for brevity] servers: ["my_server"] [my_server] executing command ** [my_server :: out] Error reading response length from […]
我们的Linux(Mint)系统有2个pipe理员用户 – mint&admin。 我们需要做什么,pipe理员和薄荷可以分享gem? Mint在/home/mint/rbenv/目录中有通过bundler安装的厨师,berkshelf&knife-ec2。 切换到pipe理员时,找不到这些程序: 程序'刀'目前没有安装。 要运行“刀”,请问你的pipe理员安装包'厨师' 两个用户如何共享已安装的软件包/程序?
我们在运行在Ubuntu 14.04上的Passenger 4.0.45和nginx 1.6.0(由Passenger安装程序安装)中运行Rails应用程序。 Passenger重载重载所有的应用程序进程。 启用乘客debugging日志后,我发现乘客日志中的“不能接受客户端:太多打开的文件(errno = 24)”错误。 Nginxconfiguration了“worker_rlimit_nofile 200000”。 使用cat /proc/pid/limits我可以确认nginx是否有正确的限制。 然而,我们在Passenger中运行的Rails应用程序没有得到更高的限制。 我已经添加到/etc/security/limits.conf为所有用户提供了一个上限,并且我已经session required pam_limits.so添加到/etc/pam.d/common-session和/etc/pam.d中/ common-session-noninteractive“并重新启动。 我可以跑 su appuser –shell /bin/bash –command "ulimit -n" 我得到一个很高的数字。 我终于尝试通过将下列内容添加到初始化程序来设置Rails应用程序的限制: Process.setrlimit(Process::RLIMIT_NOFILE, 65535) 结果是: Operation not permitted – setrlimit (Errno::EPERM)
推荐安装ruby的方法是通过rvm和rbenv。 为什么这些方法如此缓慢? 我已经看到在更快的时间安装10倍的软件包。
我想为每个应用程序在不同的ruby版本下设置不同的项目。 例如: example1.com是一个运行在Ruby 1.8.7上的主要应用程序 example1.com/tasks是另一个在Ruby 1.9.2上运行的应用程序 我尝试了一些在apache2中使用“别名”的设置,在这里的一些post1,2讨论,但子应用程序不工作(不加载乘客,但其服务的静态文件)。 我的configuration看起来像这样, <VirtualHost *:80> DocumentRoot /home/rails_apps/mainapp Alias /tasks /home/rails_apps/tasks <Directory /home/rails_apps/tasks> Options Indexes FollowSymLinks </Directory> </VirtualHost> 如何在同一个虚拟主机中加载(乘客)不同的ruby版本? 操作系统:RHEL 5 Apache 2.2 乘客4 RVM
我试图与augeas傀儡工作,但它抱怨没有augeas提供者。 一些谷歌searchbuild议 sudo yum install augeas augtool ls /files/etc/php.ini # test it works as expected sudo yum install ruby-augeas # this is to "bridge" ruby and augeas ruby -raugeas -e "puts Augeas.open" # Test ruby can talk to augeas /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file — augeas (LoadError) from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 一切工作,并安装除了最后一行。 Ruby只是不知道在哪里findaugeas.rb,因为它不在ruby包含path中 [vagrant@SubscriptionsAPI ~]$ […]
我有一个运行在Ubuntu服务器上的Ruby应用程序,这个应用程序经常需要向其他服务发出HTTP请求。 其中一些服务位于内部域,有些可以通过公共DNS访问。 我有一个Consul代理与我的Ruby应用程序共同工作,它的工作是解决内部组件的DNS查询。 最终,Ruby应用程序的速度变慢,并且需要5秒钟才能parsing到外部域的DNS查询。 我需要帮助理解为什么下面描述的行为可能会发生。 为了澄清,我的目标是了解以下行为,我已经有几个修复/我正在考虑的解决方法。 我已经将问题隔离到以下内容: 最小可重复的例子: 在/etc/resolv.conf nameserver 127.0.0.1 nameserver 8.8.8.8 我用下面的始终SERVFAIL DNSparsing器代替端口53上的Consul: #!/usr/bin/env ruby require "rubydns" RubyDNS.run_server(listen: [[:udp, "0.0.0.0", 53], [:tcp, "0.0.0.0", 53]]) do otherwise do |transaction| transaction.fail!(:ServFail) end end 我把上面的文件放在一个文件( /var/vcap/data/tmp/dns.rb )然后运行它: ruby /var/vcap/data/tmp/dns.rb 这不是非常重要的,但是上面的是用系统ruby(1.9)来运行的。 然后我运行下面的命令(再次,可能不重要,但是这使用了不同的ruby版本): var/vcap/packages/ruby-2.1.6/bin/ruby -r'net/protocol' -e \ '1.step do |i|; t=Time.now; TCPSocket.open("SOME.REAL.DOMAIN",80).close; p Time.now-t; end' 上面是一个小小的谎言,打印出来的格式有点多了,但是为了使它适合这个post而不需要左右滚动,我简化了一下。 观察到的行为: 我看到的行为是一段时间,循环的每个迭代大约10ms的顺序,但最终它开始采取5000ms的顺序。 […]