首页
学习
活动
专区
圈层
工具
发布

如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

本教程将帮助您部署Ruby 在 Rails应用程序中的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...由于Unicorn不是设计成能够直接被用户访问的,所以我们将使用Nginx作为反向代理,它将缓冲用户和Rails应用程序之间的请求和响应。...重新启动Nginx以使更改生效: sudo service nginx restart 现在可以通过服务器的公共IP地址或FQDN访问Rails应用程序的生产环境。...如果要访问我们之前创建的Tasks控制器,请在Web浏览器中访问您的应用程序服务器: http://server_public_IP/tasks 您应该看到第一次测试应用程序时看到的页面,但现在它是通过...您已使用Nginx和Unicorn部署了Ruby在Rails应用程序的生产环境。 如果您希望改进生产Rails应用程序部署,您应该查看我们的如何使用Capistrano自动部署的教程系列。

5.8K00

“小众”之美——Ruby在QA自动化中的应用

而摆在面前的问题是,回归测试的工作量较大,特别是M站渠道众多(4个渠道),移动端API的接口测试需区分多个版本,自动化测试的开展势在必行。在这样的条件下,如何快速且有效地搭建并推广自动化测试体系?...从图中可以看到,安装了Coral-API的gem后,可通过命令行 “coral g {apiname}” ,通过模板来生成测试数据XLS及对应的数据处理文件(例如ApiOne.rb文件),修改并执行ApiOne.rb...一般框架中会以JSON格式来作为测试用例的请求格式,在代码中按变量处理动态字段值。JSON作为请求数据的保存形式,存在一个很大的问题,就是后期维护,尤其是Case数量较多的时候。...示例的数据结构,通过以下语句即可实现,如果需要为后续接口测试提供前置步骤的数据,也可以同步实现,下例中为后续接口生成了5条请求数据。...Rails的设计有些颠覆传统的编程理念,CRUD的实现上不用说了,一行命令即可,数据库层的操作,通过migration搞定,在Mail,Job等功能的实现上也非常方便,框架都有对应的模块,并且提供了大量的组件

2.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

    由于Puma不是为用户直接访问而设计的,因此我们将使用Nginx作为反向代理,以缓冲用户与Rails应用程序之间的请求和响应。...将生产密码和机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用的是分布式版本控制系统(如Git),它们很容易暴露出来。接下来我们将讨论如何使用环境变量设置数据库身份验证。 保存并退出。...在您喜欢的编辑器中打开Gemfile(确保您在应用程序的根目录中): vi Gemfile 在文件的末尾,使用以下行添加Puma gem: gem 'puma' 保存并退出。...例如: /home/deploy/appname 保存并退出。 现在,您的应用程序配置为在启动时通过Upstart启动。这意味着即使在重新启动服务器后,您的应用程序也会启动。...要访问我们之前创建的Tasks控制器,请在Web浏览器中访问您的应用程序服务器: http://server_public_IP/tasks 您应该看到第一次测试应用程序时看到的页面,但现在它通过Nginx

    7.1K10

    RubyOnRailsStart —— Ruby on Rails 入门最佳开源实战项目

    项目简介RubyOnRailsStart 是一个为 Ruby on Rails 初学者 精心打造的 开源入门项目,基于经典教材《Ruby on Rails 实战圣经》一步步实现所有示例代码与功能,让你在实战中彻底掌握...无论你是零基础入门 Ruby on Rails,还是想通过 Demo 快速回顾 Rails 开发流程,这个仓库都能帮你快速上手,并且方便随时查阅、参考和复用。...Kaminari 实现数据分页D10 ~ D11 高级与 API 篇掌握 RESTful 风格路由 及命名路由设计使用 respond_to 同时支持 HTML 与 JSON 返回(Rails API...开发)Ajax 请求与 Rails API 无缝对接 运行与开发环境语言:Ruby框架:Ruby on Rails开发工具:RubyMine / 命令行数据库:SQLite / 其他兼容数据库系统环境...立即访问仓库,开始你的 Rails 学习之旅: https://github.com/tyza66/RubyOnRailsStart

    7610

    你了解Node.js的原理和应用场景吗?

    mongodb 和 mongojs —— MongoDB 包装器,为 Node.js 中的 MongoDB 对象数据库提供 API。 redis —— Redis 客户端。...对象数据库顶层的 API 虽然 Node.js 的确很适合开发实时应用,但它也很适合从对象数据库(例如MongoDB)公开数据。...例如,如果你正在使用 Rails,那么你需要从 JSON 转换为二进制模型,然后通过 HTTP 再将它们转为 JSON 在 React.js 或 Angular.js 中使用 ,甚至可以用简单的 jQuery...使用 Node.js,你可以通过 REST API 直接公开你的 JSON 对象来供客户端使用。...什么时候不应使用 Node.js 带有关系型数据库的服务器端 Web 应用 例如,将 Node.js + Express.js 与 Ruby on Rails 进行比较,当涉及到关系数据访问时,显然后者更合适

    4.9K40

    如何在Ubuntu 14.04上使用PostgreSQL和Ruby on Rails应用程序

    介绍 Ruby on Rails使用sqlite3作为其默认数据库,在许多情况下效果很好,但可能不适合您的应用程序。...本教程将向您展示如何设置开发Ruby on Rails环境,该环境允许您的应用程序在Ubuntu 14.04服务器上使用PostgreSQL数据库。首先,我们将介绍如何安装和配置PostgreSQL。...然后我们将向您展示如何创建使用PostgreSQL作为其数据库服务器的rails应用程序。 准备 本教程要求具有可用的Ruby on Rails开发环境。...如果您的Rails应用程序位于远程服务器上,并且您希望通过Web浏览器访问它,则一种简单的方法是将其绑定到服务器的公共IP地址。...3000上的服务器公共IP地址在Web浏览器中访问您的Rails应用程序: 访问网络浏览器: http://server_public_IP:3000 如果您看到“欢迎登陆”Ruby on Rails页面

    4.8K00

    如何在CentOS 6.5上使用 Nginx+Passenger 部署Railes应用程序

    介绍 对于某个计算机编程领域的新手来说,挑战永远不会结束。本文的主题是Rails,以及如何在线获取基于Ruby On Rail的 Web应用程序 - 这是最简单,最快捷的方式。...在本教程中,我们将向您展示如何使用最新的CentOS操作系统部署稳健的Rails应用程序(即在线发布),该操作系统以其稳定性闻名。...应用程序服务器的工作包括包含现代Web应用程序(例如Ruby Rack,Python WSGI等),并充当传入Web请求的辅助入口点。 另一方面,Nginx从一开始就设计为充当多用途HTTP服务器。...它充当所有请求的第一个入口点,并将它们传递给Passenger,以便Web应用程序处理并返回响应。...并定义您的默认应用程序根: root /var/www/my_app/public; passenger_enabled on; 按CTRL + X并按Y确认保存并退出。

    6.4K20

    web框架在什么程度上受限 ?

    该服务将使用数据库,但是对于某些重要的操作,没有明确的方法可以将“模型”对象直接存储到数据库表中。此外,还需要完全控制数据何时以及如何写入数据库。...但鉴于 Django 和 Rails 中编写的网站数量,质疑者怀疑自己是否完全错了,是否可以通过像 Django 或 Rails 这样的框架轻松完成任何事情,或者根据自己的需求是否应该使用 web.py...例如,Django 和 rails 抽象了一些数据库功能,因此只需要担心模型对象。但这并不意味着自己也无法做任何事情。...对以下声明感兴趣:“该服务将依赖数据库,但是对于一些更重要的操作,没有明确的方法可以将“模型”对象直接存储到数据库表中。”不确定此语句是什么意思…在某些时候必须将一些东西放入数据库,对吧?...在大多数非平凡的应用程序中,很少有一个模型绑定到请求的末尾… 实际上可能有一个非常复杂的模型网络返回或更新。如果使用 JSON,强烈建议查看 MongoDB 等数据库。

    1K10

    如何在Ubuntu 14.04上使用MySQL和Ruby on Rails应用程序

    本教程将向您展示如何在Ubuntu 14.04服务器上设置开发Ruby on Rails环境,以允许您的应用程序使用MySQL数据库。首先,我们将介绍如何安装MySQL和MySQL适配器gem。...您可以通过输入以下内容来执 sudo mysql_install_db 之后,我们想要运行一个简单的安全脚本,它将删除一些危险的默认值并锁定对我们的数据库系统的访问。...它应该看起来像这样(用MySQL root密码替换突出显示的部分): password: mysql_root_password 保存并退出。...如果您的Rails应用程序位于远程服务器上,并且您希望通过Web浏览器访问它,则一种简单的方法是将其绑定到服务器的公共IP地址。...IP地址在Web浏览器中访问您的Rails应用程序: http://server_public_IP:3000 如果您看到“欢迎登陆”Ruby on Rails页面,您的应用程序已正确配置,并连接到MySQL

    6.8K00

    创建 REST API 的最佳入门教程

    然而,如今很多人参考API文档时,他们常常参考一种可能会通过网络分享你的应用数据HTTP API,例如,Twitter提供一个API能让用户在特定的格式下请求推文,以便用户方便导入到自己的应用程序中。...当你跟API交互时,你几乎经常操作一些对象。在我们的例子中,我们讲的是部件。在REST中,我们称之为Resource。...但我将以Ruby(一种为简单快捷的面向对象编程而创的脚本语言)的方式给出一个简易例子,它使用一个叫Sinatra的类库(不懂得可以自行百度)。...当用户在网站上访问需要认证授权的页面时,浏览器就会发送cookie,应用程序就会查找seesion会话中的ID(如果它没有失效的话),由于用户的ID保存在seesion中,用户就可以浏览页面了。...用这个API,就可以使用seesion会话保存用户记录,但这毕竟不是最好的方法。有时候,用户想直接访问API,或是用户想自己授权其他应用程序去访问这个API。 解决方法是在认证的基础上使用秘钥。

    3.4K20

    慢的不是 Ruby,而是你的数据库

    处理大型数据集,使这成为一个真实而恼人的问题。 但两者的绝对差异又如何呢?Ruby 版本仅慢 1.2 秒多一点。这在测试和开发过程中已经足够令人恼火了。...此外,Rails 专注于 Web 开发。虽然你可以在 Rails 中处理非 Web 相关的任务,但这毫无意义。Rails 的目标是处理 HTTP 请求 - 响应。...sorting-by-un-indexed-field 示例揭示了 Rails 与数据库的耦合如何使其许多性能问题成为数据库问题。 根据我的经验,Rails 中的性能问题总是: N+1 个查询。...使用 Rails 人性化的 active-record API,很容易忘记你仍然只是在查询一个复杂的关系数据库。它需要微调、调优和调整,以便在合理的时间内为你提供数据。...从内存和代码中填充某个数组,然后从数据库中填充该数组,速度仍然要快一千倍或更多。正如我在第一段中所展示的那样。 所以,该怎么办呢?我采用的一些经验法则是: 在可以避免的情况下,不要使用数据库。

    2.4K30

    为什么要用 Node.js?

    mongodb 和 mongojs —— MongoDB 包装器,为 Node.js 中的 MongoDB 对象数据库提供 API。 redis —— Redis 客户端。...对象数据库顶层的 API 虽然 Node.js 的确很适合开发实时应用,但它也很适合从对象数据库(例如MongoDB)公开数据。...例如,如果你正在使用 Rails,那么你需要从 JSON 转换为二进制模型,然后通过 HTTP 再将它们转为 JSON 在 React.js 或 Angular.js 中使用 ,甚至可以用简单的 jQuery...使用 Node.js,你可以通过 REST API 直接公开你的 JSON 对象来供客户端使用。...什么时候不应使用 Node.js 带有关系型数据库的服务器端 Web 应用 例如,将 Node.js + Express.js 与 Ruby on Rails 进行比较,当涉及到关系数据访问时,显然后者更合适

    3K20

    Serverless 微服务架构案例无服务器架构 (Serverless Architectures) 简介AWS Lambda 的编程模型Amazon API Gateway + AWS Lamb

    无需初始化一台服务器,安装操作系统并配置程序运行环境。由于运行资源很少,完成的计算有限,使得这种应用无法保存状态,因此这类程序以函数的方式存在。...当请求通过域名访问到应用的时候,应用会将 HTTP 请求转发给 CDN (CloudFornt)。 CloudFront 会根据转发规则把对应的 API 请求转发到 API Gateway 上。...(PS: AWS 已经有专门的 AI 和大数据服务了,所以不需要和自己过不去) 对于我们的应用场景而言,上文中的 Ruby On Rails 应用中的主要功能(至少60% 以上)实际上只是一个数据转换适配器...操作审计类:请求会记录到 DynamoDB (一种时间序列数据库)中,用来跟踪异步请求的各种日志。 API Gateway 自己有一些缓存,可以加速 API 的访问。...在开发同样的功能下,NodeJS 的开发效率更高,原因是 Java 要把请求的 json 转化为对象,也要把返回的 json 转化为对象,而不像 nodejs 直接处理 json。

    2.6K10

    2019-05-31 使用 REST-Assured 测试 REST API 的进阶技巧和最佳实践

    GET 方法主要测试返回的 xml 或 JSON 返回体。返回体的属性及内容越多,测试就越复杂。 POST/PUT 方法主要测试发送过去的请求体是否能通过验证,并且是否根据请求体创建或修改相应的内容。...这里的难点是请求体的复杂性,以及需要测试请求体中 property 的各种参数组合。这时候,使用 JSON scheme 来验证返回体能大大简化测试代码。...如果返回体是一个数组,还可以用 from 来获取数组中的每一个对象来分别做验证。...其次我们还需要将之前生成的 JSON schema 文件添加到我们的 classpath 中。...小结: 本文介绍了如何使用 Rest-Assured 和 JSON Schema 测试 REST API 的方法及其他技巧。

    2.1K20

    从Web开发者的视角来解读MVC架构

    在实际应用中,我们只需要修改数据库的驱动程序便可,而不必知晓与之协作的数据库类型。例如:您完全可以让自己的模型与JSON文件进行交互,并从中提取数据。而这个简单的JSON文件甚至都不算是一个数据库。...例如:用户在访问页面时点击某个链接,触发了一个GET请求;或者是以提交表单的形式,发送一个POST请求;当然我们也可以发出删除、或提出更新等类型的请求。...由于这些动作无法直接从浏览器中生成,因此您只能自行产生一个GET或POST,或者是通过内置在某个框架中的HTTP客户端,来达到该目的。 在此,控制器充当的是模型与视图之间的中间人角色。...控制器需要通过模型从数据库中获取某些数据,而控制器在获取到相关数据之后,通过加载视图的方式,将该数据传递给它。接着,模板引擎接管后续的“任务”,实现输出变量之类的逻辑事务。...如上图所示,用户可以通过浏览器看到应用程序的视图。 首先,应用程序可以将他们的输入作为某种请求提交给所谓的“路由器”。而且这些请求正是用户通过点击某个链接,所产生并触发的某条路径需求。

    4.5K20

    REST API有关幂等性等11条最佳实践

    在我的职业生涯中,我使用了数百个 REST API 并制作了数十个。由于我经常在 API 设计中看到相同的错误,因此我认为写下一组最佳实践可能会更好。...规则 #3:不要在 url 中添加 .json 或其他扩展名 这似乎是 Rails 的某种默认行为,因此它间歇性地出现在公共 API 中。Shopify在这里感到羞耻。...如果您的端点返回顶级数组,您将需要一个全新的端点。 规则 #5:不要返回映射结构 我经常看到 JSON 响应中用于集合的映射结构。相反,返回一个对象数组。...假设你想从两个系统(Alpha 和 Bravo)中删除一个资源,而你只有一个简单的 REST API(没有两阶段提交): 在单个数据库事务中,SystemAlpha 删除 Thing123 并查询 NotifyBravo..."} 同样,许多订单处理系统允许客户提交“客户参考 ID”,该 ID 与每个订单一起保存并包含在客户报告中。

    63620

    从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)

    我们在平时所用到的一些网站、App,它们会将我们的数据进行保存,当我们关闭这些网站或者 App 后,下次打开还能看到我们之前的一些文字、视频记录。...app.js 中,而是根据不同的子应用(users、index)进行了拆分,这也与该系列第一篇教程[7]中 vue-router 的嵌套路由不谋而合。...router 实例,接着定义了 get 这一 HTTP 方法来处理以 GET 方法访问我们服务器地址为 / 时如何进行处理,最后导出我们的 index 路由。...我们的 API 服务器实际上就是通过 HTTP 的各种方法(POST、DELETE、PUT、GET 等)访问我们定义的路由,进而对数据库进行相应的增删改查操作以获取我们期望的数据。...可以看到,我们导入了 api 路由,并定义了访问路径 /api/v1。

    3.6K10

    Restful 表述性状态传递

    rails 官方网站 https://rubyonrails.org/ 或者名为 Ruby on Rails 一种基于Ruby语言即面向对象,命令式,函数式,动态的通用编程语言,由日本科学家发明。...,因为此时是由客户端决定的 客户端不一定支持HTTP方法 rails 框架是通过隐藏参数的方法,达到传递真实请求的方式 资源的表述 客户端获取的只是资源的表述。...客户端和服务端交互必须是无状态的。 Cookie是保存一些服务器不依赖于会话状态即可依赖的信息。 应用状态的转移 会话状态不是作为资源状态保存在服务器端的,而是被客户端作为应用状态进行跟踪的。...文件有以下api 序号 Url Http方法 发送内容 结果 1 listUsers GET 空 显示所有用户列表 2 addUser POST JSON字符串 添加新用户 3 deleteUsers...http://127.0.0.1:1937/addUser 返回的JSON数据 undefined 此时本地的JSON数据仍旧未发生改变,如果要其发生改变需要fs的写模块,将JSON数据写入JSON文件中

    1.4K50
    领券