gpt4 book ai didi

docker - 如何在具有自定义路径的 AWS ALB 后面使用 Traefik v2.3 为 Wordpress 提供服务?

转载 作者:行者123 更新时间:2023-12-02 18:43:35 27 4
gpt4 key购买 nike

我有一个 Wordpress 博客,我想将其托管在 mydomain.com/blog。我在 Docker 中使用 Traefik v2.3,图像为 wordpress:latest。

我有一个 AWS ALB 负载均衡器,它终止 https:443 上的证书并将流量发送到 http:80。我不想终止 Traefik 中的 tls 证书。即使我从配置中注释掉 tls=true 和解析器标签,我的 traefik 日志中仍然会出现错误。

level=error msg="Unable to obtain ACME certificate for domains"www.mydomain.com": unable to generate a certificate for the domains[www.mydomain.com]: error: one or more domains had aproblem:\n[www.mydomain.com] acme: error: 403 ::urn:ietf:params:acme:error:unauthorized :: Cannot negotiate ALPNprotocol "acme-tls/1" for tls-alpn-01 challenge, url: \n"providerName=letsencryptresolver.acme routerName=rxblog-secure@dockerrule="Host(www.mydomain.com) && PathPrefix(/blog)"

在浏览器中我得到“页面没有正确重定向”。

这是我的 wordpress 配置:

version: '3.8'

networks:
traefik:
external: true

volumes:
data:

services:

blog:
image: wordpress:latest
container_name: blog
restart: always
networks:
- traefik
environment:
- WORDPRESS_DB_HOST=us-east-1.rds.amazonaws.com
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=
- WORDPRESS_DB_NAME=wordpress
volumes:
- type: volume
source: data
target: /var/www/html
- type: bind
source: ./uploads.ini
target: /usr/local/etc/php/conf.d/uploads.ini
labels:
- "traefik.enable=true"
- "traefik.http.routers.blog.entrypoints=web"
- "traefik.http.routers.blog.rule=Host(`www.mydomain.com`) && PathPrefix(`/blog`)"
- "traefik.http.routers.blog.middlewares=redirect-to-https@docker"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.routers.blog-secure.entrypoints=websecure"
- "traefik.http.routers.blog-secure.rule=Host(`www.mydomain.com`) && PathPrefix(`/blog`)"
- "traefik.http.services.blog-secure.loadbalancer.server.port=80"
- "traefik.http.routers.blog-secure.tls=true"
- "traefik.http.routers.blog-secure.tls.certresolver=letsencryptresolver"
- "traefik.http.middlewares.blog-secure.stripprefix.prefixes=/blog"
- "traefik.http.middlewares.blog-secure.stripprefix.forceslash=false"

我按如下方式编辑了我的标签:

- "traefik.enable=true"
- "traefik.http.routers.rxblog.entrypoints=web"
- "traefik.http.routers.wordpress.rule=Host(`www.mydomain.com`) && PathPrefix(`/`)"
- "traefik.http.services.rxblog.loadbalancer.server.port=80"
- "traefik.http.middlewares.rxblog.stripprefix.prefixes=/blogtest"
- "traefik.http.middlewares.rxblog.stripprefix.forceslash=false"

然后我添加了一个 .htaccess 文件,如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我无法使上述任何组合起作用。我刚收到/blog/的 404

最佳答案

删除路由器上的 tls 设置。

- "traefik.http.routers.blog-secure.tls=true"
- "traefik.http.routers.blog-secure.tls.certresolver=letsencryptresolver"

关于docker - 如何在具有自定义路径的 AWS ALB 后面使用 Traefik v2.3 为 Wordpress 提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63743171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com