我正在尝试在负载均衡器后面部署一个 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 应用程序 404The page is not found
。
我究竟做错了什么 ?