React-Router Nginx代理导致无限重定向

时间:2019-07-13 01:29:51

标签: reactjs nginx react-router

我有一个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应用可能是什么问题?

2 个答案:

答案 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> ```