如何让Nginx代理仅在“ /”位置传递并在其余位置提供index.html

时间:2018-06-19 19:46:22

标签: django reactjs nginx

我有一个Web应用程序,该应用程序使用Django作为后端,并使用某些前端,而ReactJS则完全使用前端。我正在设置我的Nginx配置,并且试图使Nginx仅在“ /”位置上,然后在其余位置上,使其希望proxy_pass可以从React中提供index.html文件。

这是我当前在可用站点下的Nginx配置。因此,唯一没有前缀“ / home /”或“ / app /”的网址就是首页。我希望Django提供首页,然后让ReactJS提供其余部分。

server {
listen 80;
root /home/route/to/my/ReactJS/build;
server_name www.mydomain.com;

location = /favicon.ico { log_not_found off; }

location / {
    include proxy_params;
    proxy_pass http://0.0.0.0:8000;
}

location /home/ {
    try_files $uri $uri/ /index.html;
}

location /app/ {
    try_files $uri $uri/ /index.html;
}
}

让我知道是否需要更多详细信息,或者我是否可以解决这些问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

只需将其更改为以下内容((替换最后三个位置块)

location = / {
    include proxy_params;
    proxy_pass http://0.0.0.0:8000;
}

location / {
    try_files $uri $uri/ /index.html;
}

location = /只匹配确切的域,其他所有内容都将被location /匹配。