标签: mercure

如何使用 Apache 在生产环境中运行 Mercure

我在使用 Mercure 的 Apache 服务器上有一个 Symfony 项目,并且我尝试在生产中设置 Mercure hub。

为了在生产中运行 Mercure hub,我将存档 Mercure_0.6.2_Linux_x86_64.tar.gz ( https://github.com/dunglas/mercure/releases ) 提取到项目根目录下的子文件夹 Mercure 中。

然后我运行命令:

JWT_KEY='myJWTKey' ACME_HOSTS='example.com' ./mercure
Run Code Online (Sandbox Code Playgroud)

与我的信息

但集线器无法运行并出现以下错误:

FATA[0000] 监听 tcp:443:绑定:权限被拒绝

我看到了类似的问题(How to run Mercure in production),但建议的答案使用 ADDR 来更改端口,并且根据文档,“Let's Encrypt 仅支持默认端口:要使用 Let's Encrypt,请勿设置此变量。” 。

如何在生产环境中运行 Mercure?

apache mercure

3
推荐指数
1
解决办法
3830
查看次数

Symfony 4 和 Mercure with Docker - 无法连接到服务器

我正在尝试使用 Docker 映像在 Symfony 上运行 Mercure。

symfony/mercure 版本:“v0.2.0”,

docker-compose.yaml 配置:

  mercure:
    container_name: mercure
    image: dunglas/mercure
    environment:
    - JWT_KEY=MySecret
    - DEMO=1
    - ALLOW_ANONYMOUS=1
    - PUBLISH_ALLOWED_ORIGINS=http://my_project.com:9090/hub
    - DEBUG=1
    - CORS_ALLOWED_ORIGINS=*
    ports:
    - "9090:80"
Run Code Online (Sandbox Code Playgroud)

当我去http://my_project.com:9090/可以看到可行的 Mercure 调试工具页面。Mercure 已正确安装并与 docker 容器一起运行。

Symfony .env 文件:

MERCURE_PUBLISH_URL=http://my_project.com/hub
MERCURE_JWT_SECRET=valid_generated_JWT_token
Run Code Online (Sandbox Code Playgroud)

MERCURE_JWT_SECRET 是使用来自 Docker 配置 (MySecret) 的 JWT_KEY 生成的有效 JWT 令牌和有效负载:

{
    "mercure": {
        "publish": []
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这样一个简单的例子时:

public function getCountUnreadMessagesAction(Publisher $publisher)
{
     // some API logic

    $update = new Update(
        'http://my_project.com/api/v1/messages/count-unread',
        json_encode(['count' => $count])
    ); …
Run Code Online (Sandbox Code Playgroud)

symfony docker docker-compose symfony4 mercure

0
推荐指数
1
解决办法
2082
查看次数

标签 统计

mercure ×2

apache ×1

docker ×1

docker-compose ×1

symfony ×1

symfony4 ×1