Tag: puma

使用Docker + Puma + Nginx部署Rails 5应用程序

我真的很费劲将我的Rails应用程序部署到我新创build的DigitalOcean液滴。 我的设置如下: 我有一个在Docker容器中使用Postgres和Redis的本地Rails 5应用程序。 我只是想部署到生产使用Puma + Nginx作为networking服务器。 我无法做到这一点为我的生活。 这是我的docker-compose.yml文件: version: "2" services: postgres: image: postgres:9.6 ports: – "5432:5432" environment: POSTGRES_DB: "${DATABASE_NAME}" POSTGRES_PASSWORD: "${DATABASE_PASSWORD}" volumes: – postgres-data:/var/lib/postgresql/data redis: image: redis:latest ports: – "6379:6379" volumes: # This allows the data to persist to disk without being lost on # Docker container restarts: postgres-data: driver: local 什么是Puma / […]

如何在Docker中设置Puma worker,Rails的线程

我最近在Docker上部署了一个Rails应用程序到Amazon ECS。 我的应用程序使用两个容器 – 一个用于应用程序,Puma作为应用程序服务器,另一个用于nginx,作为应用程序的反向代理。 我正在使用2个工人和5个线程的默认彪马configuration。 我在t2.small上运行这个实例。 我们开始看到应用程序最终会开始超时的问题。 用户不会得到任何回应,或者最终会从负载均衡器中获得504错误的网关错误。 在Rails日志中,我们会看到在没有非常特殊的情况下,请求会突然开始太长(800秒!)。 几分钟后,彪马将开始一个新的工人,它会恢复正常。 我在Puma的文档中读到,你应该设置工作人员等于CPU核心的数量,在t2.small上是1,所以我这样做了。 我也读过,如果你不确定你的应用程序是否是线程安全的,你不应该搞砸了,所以我把线程设置为1。 1名工人,1个线程。 整天都很好 – 迄今为止。 我将如何获得更多的并发性? 该应用程序几乎没有使用内存或CPU – 我应该旋转更多的任务(1任务= 1轨道容器+ 1个Nginx容器)? 如果我在Puma面前有nginx,我甚至需要担心吗?

Rails 5应用程序连接到Docker + Puma(Nginx)+ PostgreSQL

我已经看过一些教程,但不能设置,只是如我所愿。 我有一些Rails应用程序,我不想放置在Docker容器中,因为它使诸如运行任务或迁移等事情有点令人讨厌。 不过,我想将这些应用程序连接到Nginx(使用Rails 5的默认Puma服务器)和使用Docker的PostgreSQL容器。 什么是正确的方法来设置呢? 这甚至有可能吗? 我正在考虑如下内容: app1 app2 app3 \ | / \ | / \ | / \ | / ——– |Docker| ——– ======= ============ |Nginx| |PostgreSQL| ======= ============ 提前致谢!