如何从Nginx服务React应用和Django博客?

时间:2018-07-01 03:39:48

标签: django reactjs nginx

我正在使用nginx从我的域根/提供一个React应用程序,并从/blog提供一个Django博客应用程序。我还使用nginx将所有http重定向到https

问题是一些奇怪的行为...如果我导航到具有清晰缓存的博客,它将显示该博客。如果然后我导航到索引页面,它将显示react应用程序。到目前为止一切都很好。但是然后,如果我返回/blog,它将继续显示react应用,而不是博客!我认为问题涉及缓存,但是我不确定在哪里。

我没有使用react-router,所以我不确定如何在客户端重定向网址。

这是我的Nginx配置:

server {
    listen 80;
    server_name mydomain.com;
    return 301 https://$server_name$request_uri;
}


server {
    listen 443 ssl;
    server_name mydomain.com;
    root /production_build;

    location /static/ {
        root /var/www/mysite;
    }

    location /blog {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://upstream_django_server;
    }

    location /cms {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://upstream_django_server;
    }

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

1 个答案:

答案 0 :(得分:3)

您应该禁用服务工作者的反应,因为这会干扰您的/blog网址,并在下次返回自己的响应。

由于您在此处混合了2个应用程序,因此您不想冒险拥有一些难以摆脱的东西。

由于缓存响应,服务人员有时会非常讨厌