我正在使用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"
在输入此URL时,如何在此处提供我的index.html文件以处理重定向?
答案 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
。