如何从Nginx提供React应用程序和Django博客?
我正在使用nginx从我的域根如何从Nginx提供React应用程序和Django博客?,django,reactjs,nginx,Django,Reactjs,Nginx,我正在使用nginx从我的域根/提供一个React应用程序,从/blog提供一个Django博客应用程序。我还使用nginx将所有http重定向到https 问题是一些奇怪的行为。。。如果我导航到带有清晰缓存的博客,它会显示博客。如果我导航到索引页面,它会显示react应用程序。到目前为止一切都很好。但是,如果我返回到/blog,它将继续显示react应用程序,而不是blog!我认为问题涉及缓存,但我不确定在哪里 我没有使用react路由器,所以我不确定如何在客户端重定向URL 这是我的ngin
/
提供一个React应用程序,从/blog
提供一个Django博客应用程序。我还使用nginx将所有http
重定向到https
问题是一些奇怪的行为。。。如果我导航到带有清晰缓存的博客,它会显示博客。如果我导航到索引页面,它会显示react应用程序。到目前为止一切都很好。但是,如果我返回到/blog
,它将继续显示react应用程序,而不是blog!我认为问题涉及缓存,但我不确定在哪里
我没有使用react路由器,所以我不确定如何在客户端重定向URL
这是我的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;
}
}
您应该在react中禁用服务工作者,因为它会干扰您的
/blog
url,并在下次返回自己的响应
因为你在这里混合了两个应用程序,所以你不想冒险拥有一些难以摆脱的东西
服务工作者有时会因为缓存响应而变得非常讨厌您应该在react中禁用服务工作者,因为它会干扰您的
/blog
url,并在下次返回自己的响应
因为你在这里混合了两个应用程序,所以你不想冒险拥有一些难以摆脱的东西
服务人员有时会非常讨厌,因为缓存响应当你第二次点击
/blog
时,nginx访问日志显示了什么?@Tarun第二次我进入/blog时,nginx日志只显示了对/api的成功(代码200)GET请求(nginx配置的一部分,类似于blog和cms),由我的react应用程序调用。因此,我猜这表明浏览器没有将第二个/blog请求传递给服务器。为什么?请尝试禁用react worked进程,看看在这种情况下会发生什么?没有react worker,因为它是与nginx一起提供的捆绑包。但是,如果我只是删除位置/
部分(使用默认的nginx页面而不是react),导航就可以了。chrome网络选项卡在响应数据中为第二个博客请求显示了什么?当你第二次点击/blog
时,nginx访问日志显示了什么?@Tarun我第二次访问/blog时,nginx日志只显示了对/api(我的nginx配置的一部分,类似于blog和cms)的成功(代码200)GET请求,该请求由我的react应用程序调用。因此,我猜这表明浏览器没有将第二个/blog请求传递给服务器。为什么?请尝试禁用react worked进程,看看在这种情况下会发生什么?没有react worker,因为它是与nginx一起提供的捆绑包。但是,如果我只是删除location/
部分(使用默认的nginx页面而不是react),导航就可以了?