【问题标题】:Allow all requests to the AKKA-HTTP service允许对 AKKA-HTTP 服务的所有请求
【发布时间】:2021-05-22 23:00:26
【问题描述】:

同志们! 我有一个来自 AKKA-HTTP 示例的小服务。

import ch.megard.akka.http.cors.scaladsl.CorsDirectives._

object Server extends App{
    
    val route = cors() {
      path("hello") {
        get {
          complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Привет ёпта</h1>"))
        }
      }
    }

    val routes = cors() {
      concat(route, getUser, createUser, addMessage, getQueue, test, test2)
    }
    
    val bindingFuture = Http().newServerAt("localhost", 8080).bind(routes)
}

对于 CORS,我创建文件资源/application.conf:

akka-http-cors {

  allowed-origins = "*"
  allowed-methods = ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS"]
}

当我在 intellij idea 中运行一个项目时,该路线运行良好:

但是如果我在 Docker 中运行该项目,该路由将无法正常工作。 铬错误:

邮递员错误:

以下是项目随处关闭时的错误:

如何正确配置 application.conf 文件以使应用程序接受第三方请求?或者错误可能隐藏在其他东西中? 请告诉我! 我想了两天。

UPD:文件 DockerFile:

FROM openjdk:8-jre-alpine
WORKDIR /opt/docker
ADD --chown=daemon:daemon opt /opt
USER daemon
ENTRYPOINT ["/opt/docker/bin/servertelesupp"]
CMD []

GitHub 上的项目:https://github.com/MinorityMeaning/ServerTeleSupp

【问题讨论】:

  • CORS 似乎不是问题所在。您介意将您的 Dockerfile 代码添加到问题中吗?另外,还请删除错误图像。查看“如何提问”指南以获取有关如何提问stackoverflow.com/help/how-to-ask 的更多建议
  • @RodrigoVedovato,是的,我可以删除错误图像。但它们真的没用吗?我会在一分钟内添加 Dockerfile 的内容。
  • 对于大多数情况,错误的文本描述应该足够了。不鼓励使用图片,除非无法使用文字来描述,例如图表和渲染问题(例如 CSS 问题)
  • @RodrigoVedovato 在这里,这家伙正面临着我的处境。 youtu.be/CzKvO5xO9XE?t=343
  • 除非您忘记提及其他内容,否则我相信他的问题与您的问题不同。 CORS 适用于不同域之间的调用,例如托管在 localhost:4200 上的网页调用托管在 localhost:8000 上的 API

标签: scala service request akka akka-http


【解决方案1】:

改变

Http().newServerAt("localhost", 8080).bind(routes)

Http().newServerAt("0.0.0.0", 8080).bind(routes)

通过绑定到 docker 内部的localhost,您将无法将外部流量路由到它。

【讨论】:

  • 是的!它为我工作!很酷!感谢您的关注。
【解决方案2】:

您使用的-p 标志的值是多少?如果服务器在 docker 内使用 8080 端口,则它应该是 8080:8080,如果服务器使用 80(等等),它应该是 8080:80。另外请确认端口在 docker 中确实是空闲的。

PS:我的声誉很低,无法添加评论。

【讨论】:

  • 是的,我使用的是 8080:8080 项目使用的是 8080 端口。我通过端口 8080 访问 docker。所以我使用的是 8080:8080。
猜你喜欢
  • 1970-01-01
  • 2016-06-03
  • 2016-01-31
  • 2015-06-25
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多