ssl - 如何在本地处理 Play 应用程序

标签 ssl heroku playframework

大家好,我是 play 框架和 Heroku 的新手。我被要求开发一个由其他人编写的在 Heroku 上托管的 Play 应用程序。该应用程序附加了一个 PostgreSQL 数据库。

我想知道处理它的最佳方法是什么。我不想每次为了查看结果而进行一些更改时都必须将我的应用程序推送到 heroku。

由于远程数据库问题,“play run”命令无法在本地运行。我复制了 DATABASE_URL 值并将其放入配置文件中,但它仍然无法正常工作,因为它显示“SSL 关闭”并且似乎打开 SSL 并不是一件容易的事。

关于我应该如何处理这个项目有什么想法吗?

提前致谢!

最佳答案

为了从本地计算机访问 Heroku Postgres 数据库,必须使用 SSL 连接。为此,您需要将以下查询参数添加到数据库连接字符串中:

?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

此外,在本地运行时,我建议使用 Foreman ,它可以读取您的 Procfile 并注入(inject)环境变量,就像在 Heroku 上一样。要设置要使用的环境变量,请创建(但不要 checkin )一个包含您希望应用程序可用的键值对的 .env 文件。例如,像这样:

DATABASE_URL=postgres://user:pass@ec2-107-22-182-123.compute-1.amazonaws.com:5432/db?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

然后,您将能够像这样运行您的应用:

foreman run play run

提示:为了更轻松地创建 .env,请检查 heroku-config插件,它提供了一个 heroku config:pull 命令来将配置从你的应用程序拉到一个 .env 文件。当然,您可能希望使用开发数据库进行本地开发,但如果您愿意,这可以让您投入生产。

关于ssl - 如何在本地处理 Play 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859114/

相关文章:

django - 在 heroku 中设置数据库 : postgresql in django 1. 8

playframework - 在 Play 中导入 CRUD 模块! 1.2.3

java - 将中文保存到mongodb 2.4.8 导致不可读的字符串

ssl - Cloudflare 和 Heroku 之间的加密

java - Struts2 redirectAction 不是 https 吗?

python - 找不到命令 : django-admin. py

java - 后端Play框架,前端呢?

tomcat - keystore 位置 (Linux)

ssl - 如何使用 https 服务 devpi?

heroku - Godep 处理自定义包