【问题标题】:django, reactjs, ngnix: deploy prossesdjango、reactjs、nginx:部署过程
【发布时间】:2016-08-25 19:53:54
【问题描述】:
我对 django rest 开发没有什么疑问。我正在用后端的 DRF、wsgi、ngnix 和前端的 reactjs 构建项目。
问题:
1)在反应前端之外为用户和其他服务阻塞端点:
我们有这样的情况:现在每个人都可以从端点获取数据,如果他或她写正确的 url 地址。我怎么能阻止它。所以目标是现在可以看到,只有react
2) 无论 django api 在哪里,如何设置 ngnix 的 ngnix 是 gona service fronted add in react?
谢谢
【问题讨论】:
标签:
django
nginx
deployment
reactjs
django-rest-framework
【解决方案1】:
你无法保护它,这只是让普通乔稍微困难一点。一些可供探索的选项:使用CSRF token,检查Referer HTTP header,使其仅适用于经过身份验证的用户(使用电子邮件、验证码、信用卡等注册),通过IP(+浏览器指纹)进行限制和黑名单,天空是极限.
-
您是否在询问如何将您的反应源移出 django 的 /static/ 文件夹?您可以直接在 nginx 中映射您的前端文件夹,因此您将不再使用 collectstatic 进行部署,并且可以简单地在模板中直接链接前端 url <script src='/frontend/react.js'></script>(如果需要,您可以从另一台服务器加载它)。
server {
listen 80;
# where django static files are, like for admin app
location /static {
alias /var/www/static;
}
# where your frontend js files are
location /frontend {
alias /home/user/frontend;
}
# regular uwsgi
location / {
uwsgi_pass unix:/home/user/app.sock;
include uwsgi_params;
}
}