使用 Docker 安装 OpenProject - Nginx 问题:重定向太多次

问题描述 投票:0回答:2

我在尝试解决 openProject 安装问题时遇到了困难。我按照本指南中的说明安装了它。然后,我使用 world4you 为我的公共 IP 和子域添加了 A 记录。我还使用 Let's Encrypt 创建了 SSL 证书:

mkdir /var/www/certbot/openproject.invert.at
certbot certonly --webroot -w /var/www/certbot/openproject.invert.at -d openproject.invert.at

然后我创建并修改了一个名为 /etc/nginx/sites-enabled/openproject.eeg_invert.de 的文件,如下所示:

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;

    # ssl_certificate /etc/letsencrypt/live/openproject.eeg_invert.de/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/openproject.eeg_invert.de/privkey.pem;

    access_log /var/log/nginx/access_openproject.eeg_invert.de.log;
    error_log /var/log/nginx/error_openproject.eeg_invert.de.log;

    server_name openproject.eeg_invert.de;
    if ($http_user_agent ~* ".*SemrushBot.*") {return 403;}

    location '/.well-known/acme-challenge' {
        root /var/www/certbot/openproject.eeg_invert.de;
    }

    location / {
        if ($scheme = http) {
            return 301 https://$server_name$request_uri;
        }
        proxy_set_header     X-Script-Name /;
        proxy_set_header     X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header     X-Remote-User $remote_user;
        proxy_set_header     Host $http_host;
        # proxy_redirect http:// https://;
        proxy_pass http://localhost:8080;

    }
}

我重新加载了 nginx,一切正常。但是,我使用

cd /docker/openproject/compose && docker-compose pull && docker-compose up -d
更新了此应用程序并重新加载了 nginx,但现在我在 chrome 上收到此消息:

此页面无法正常工作 openproject.eeg_invert.de 已将您重定向了太多次。 尝试清除您的cookie。 ERR_TOO_MANY_REDIRECTS

在更新之前,我备份了所有相关的 docker 卷和整个项目文件夹(撰写文件所在的位置)。我绝不是 IT 方面的专家,所以到目前为止我所做的是在更新后运行 docker-compose。然后我恢复了项目文件夹并运行 docker-compose up -d。

问题是现在我仍然遇到同样的错误。我查看了 nginx 错误日志文件,但没有任何结果。我尝试从 nginx 文件中随机禁用一些选项,看看是否会改变某些内容,但它总是相同的。

我现在遇到了困难,非常感谢您的帮助!预先感谢您的任何建议或想法。

docker nginx docker-compose nginx-reverse-proxy openproject
2个回答
0
投票

您是否尝试清除浏览器中的cookie?出现此问题的原因有很多:

  • 浏览器缓存/cookie 问题。浏览器可能正在缓存错误数据,从而导致重定向错误。
  • 浏览器扩展。有时浏览器扩展可能会导致重定向错误。
  • 网站的 URL。 URL 设置错误可能会导致重定向错误。
  • WordPress 缓存。网站缓存可能会导致重定向循环。
  • SSL 证书。配置错误的安全协议(SSL 证书)可能会导致重定向循环。
  • 第三方服务和插件。有问题的 WordPress 插件可能会导致重定向循环。
  • 网站的 .htaccess 文件。 WordPress 使用用户级配置文件将 URL 重写到 index.php 文件。网站 URL 被定义为数据库中的值。

0
投票

对于任何寻找此问题答案的人,请尝试显式将 OPENPROJECT_HTTPS 设置为 true 并将其注入到 docker 命令中,如下所示:

docker run -d -p 8080:80 --name openproject \
  -e OPENPROJECT_HTTPS=true \
  -e OPENPROJECT_HOST__NAME=your.hostname \
  -e OPENPROJECT_SECRET_KEY_BASE=your-secret \
  -v /var/lib/openproject/pgdata:/var/openproject/pgdata \
  -v /var/lib/openproject/assets:/var/openproject/assets \
  openproject/community:13

您还应该将以下行添加到您的 NGINX 位置/服务器块中:

proxy_set_header X-Forwarded-Proto $scheme;

这将解决 CSRF 令牌不匹配问题。

© www.soinside.com 2019 - 2024. All rights reserved.