无法使用网址导航通过Nginx进行反应

时间:2019-06-30 08:53:09

标签: reactjs nginx nginx-location nginx-config

我正在使用nginx(反应前端)提供我的静态文件。 我为每个页面使用了不同的网址,如/ login / user / home。

我的nginx不会将它们重定向到我的index.html文件。

我做了一些更改,现在也无法进入主页。它返回无法获取/。

这是我的nginx.conf文件。我在Windows上运行它。我的index.html位于build文件夹中。如何让我的Nginx在reactjs中使用Router和Link,以便我可以通过引用链接或通过导航栏来获取页面?

worker_processes  5;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen   80;
        server_name  ip;

        location / {
            root   /Users/username/projectfolder/build;    
            index  index.html index.htm;
            try_files $uri $uri/ index.html;
            proxy_pass http://ipaddress:portnumber;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
         }
     }
 }

更新:

我尝试了以下配置

server {
        listen some_port;
        server_name some_ip;
        root C:\\nginx-1.17.1\\build\\;
        index  index.html index.htm;
        location /test/ {   
            alias C:\\nginx-1.17.1\\build\\;
            index  index.html index.htm;
            try_files $uri \\index.html;
            #internal;

            #return index;
        }
        location = /index.html {
        # no try_files here
        return 502;
    }
        location / {  
            #root   C:\\Users\\DEV-a0a02yc\\insurance_automation\\build;
            try_files $uri $uri\ \index.html?$args;
            #try_files $uri/ index.html;
            proxy_pass http://some_ip:some_port;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

在/ test /网址中,我得到一个空白页和一个重写/内部重定向错误,提示:

2019/07/01 09:53:22 [error] 17820#18008: *1 rewrite or internal redirection cycle while internally redirecting to "/favicon.ico\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html"

这是我的网络标签: enter image description here

在输入此URL时,如何在此处提供我的index.html文件以处理重定向?

1 个答案:

答案 0 :(得分:1)

您的配置中有哪些代理行?

您不是从html文件中投放还是通过代理传递到其他地址?

我建议尝试从配置中删除代理行。

在不相关的注释上,proxy_pass行也是无效的。服务器地址“ ipaddress”是一个很长的字符串(尽管对于dns来说不是不可能的),端口“ portnumber”肯定是无效的。

因此,最低要求的配置如下:

location / {
    root /folder/subfolder/build;
    try_files $uri /index.html;
}

root定义了您的react build文件夹位置,try_files定义了nginx应该查看所请求的文件是否存在,如果不存在则服务于index.html