phpBB 位于 nginx 后面的子文件夹中

phpBB 位于 nginx 后面的子文件夹中

我正在尝试在负载均衡器后面部署一个 phpBB 论坛来分配流量:

  • 如果https://example.com/forum/*,重定向到实例A(phpbb + nginx)
  • 上的任何其他路径https://example.com/,重定向到实例 B(其他内容)

因此,我希望在实例A并可在 下获得https://example.com/forum/

在实例 A 上,我正在运行 nginx。这是我的nginx.config(仅包含重要内容):

http {
    server {
        listen [::]:443 http2 ssl default_server;
        listen      443 http2 ssl default_server;
        server_name example.com;

        # PHP BB
        root /var/www/mysite/forum/src;

        # fastcgi
        include /etc/nginx/conf.d/fastcgi-php.conf;

        location /forum {
            index index.php index.html index.htm;
            rewrite ^/forum/(.*) /$1 break;
            try_files $uri $uri/ @rewrite_app;
        }

        location ~ \.php(/|$) {
            try_files $uri $uri/ /app.php$is_args$args;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        }

        location @rewrite_app {
            rewrite ^(.*)$ /app.php/$1 last;
        }
    }
}

这是我的问题:

  • 当我访问https://example.com/forum/论坛时会加载,但所有内部链接都没有写路径/forum/,导致负载均衡器重定向到实例 B。
  • 当我访问时https://example.com/forum/index.php,内部链接和路径都正确写入/forum/,但我收到 phpBB 应用程序 404 The page is not found

我究竟做错了什么 ?

相关内容