django - 2 个 django 应用程序的 Nginx 配置 2 个不同的端点 1 个服务器主机
问题描述
所以问题是我有 1 个 ip(例如127.0.0.1 )
在我的服务器上有 2 个不同的 django 应用程序
1. /api 0.0.0.0:8000
2. /data 0.0.0.0:8090
3. / this will go to default pages served up by nodejs
我需要弄清楚如何部署这些单独的服务的 nginx 配置,每个服务都有自己的数据库。
导航时,如果端点被命中,它将被路由到适当的应用程序,否则它将默认到 nodejs 应用程序。
额外信息:登录 /api/admin/ 时,它被路由到 /admin 并且失败,请考虑 django 进行的重定向。我尝试了很多东西,包括设置主机或位置
这将是 2 天内的赏金,所以狩猎愉快。
当前的 nginx
upstream app1 {
server 0.0.0.0:8000;
}
upstream app2 {
server 0.0.0.0:8090;
}
server {
listen 80;
server_name localhost;
location / {
error_log /var/log/webapp/error.log debug;
access_log /var/log/webapp/access.log;
proxy_pass http://0.0.0.0:3000;
proxy_redirect off;
}
location /api {
location /api/static {
alias /var/tmp/app1/static;
#autoindex on;
}
proxy_pass http://app1;
proxy_redirect off;
}
location /data {
location /data/static {
alias /var/tmp/app2/static;
}
proxy_pass http://app2;
proxy_redirect off;
}
}
解决方案
您是否使用 gunicorn 作为 WSGI 服务器?
以防万一,尝试将其添加到现有的 nginx 配置中:
location /api {
proxy_set_header SCRIPT_NAME /api;
...
location /data {
proxy_set_header SCRIPT_NAME /data;
...
...
原则上,SCRIPT_NAME 将被传递给 gunicorn,而后者又应将其用作所有地址的前缀。
不过,我从未在实际项目中尝试过。
推荐阅读
- android - 当小部件可见时收到通知
- html - Firefox - 当滚动行为平滑开启时,postiton 粘性关闭
- vector - 从借用的 Vec 中删除值时,如何避免移出借用?
- python - OpenAI Gym Atari 游戏、TD Policy 应用
- python - 散景服务器不会提供简单的日期滑块
- debugging - 防止迭代器遍历容器的末端
- android - Cordova - 无法触发 Android 让我选择要上传的图像
- vba - Excel工作表上的实际物理长度与点/像素
- google-chrome - 如何从 chrome 扩展程序调用 Chrome Web Store API 端点?
- c - C 编程:生成一个介于 -2,2 之间的随机数 (x),然后更新 x