我有一个react应用程序,它使用带oidc的react-router并在nginx容器中运行。但是,当它被另一个Nginx容器代理时,react-router似乎不起作用。 oidc成功登录后,客户端应用程序将输入无限重定向。
起初,我遇到了这个问题,即使我没有代理即可运行它。我通过将try_files添加到nginx配置中解决了该问题。
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
这很好。但是,当此nginx容器由另一个nginx容器代理(让我们说前nginx)时,似乎禁用了react-router并由nginx完成了路由,这导致了重定向。这是前nginx容器的配置
server {
server_name panel-qa.test.com;
listen 80 ;
access_log /var/log/nginx/access.log vhost;
return 301 https://$host$request_uri;
}
server {
server_name panel-qa.test.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/access.log vhost;
.... SSL parameters removed for the sake of brevity
add_header Strict-Transport-Security "max-age=31536000" always;
include /etc/nginx/vhost.d/default;
location / {
proxy_pass http://panel-qa.test.com;
}
}
由于我认为此问题与nginx配置有关,因此我没有在此处共享react代码。我可以根据要求共享它,因为它在github上可用。
禁用反应路由器的前端nginx应用可能是什么问题?
答案 0 :(得分:0)
问题与我的OIDC设置有关。与nginx或react-router无关。
答案 1 :(得分:0)
您在很多地方都提到了相同的URL重定向
在创建要在package.json主页URL中进行设置的内容之前,必须在package.josn中提及home路径
错误:使用响应历史记录或将URL保留在响应端的哈希路由器的Nginx配置上没有错误
<HashRouter history={history}>
<Route path='/' component={IndexPage} exact={true} />
</HashRouter> ```