【问题标题】:deploying Node.js and Django to same domain/server将 Node.js 和 Django 部署到同一个域/服务器
【发布时间】:2021-09-19 04:27:56
【问题描述】:

目标:给我的 Django 应用程序(带有 Python 后端 [编写] 和 react/redux/js 前端 [编写])一个 Smartsheet API OAuth 页面,该页面将用户重定向到主网站,直到完成身份验证,然后返回网站(在功能中利用 Smartsheet API)

Crux:预感说 OAuth 应该在 node.js 中以更好地匹配前端,我找到了一个工作示例代码,用于如何在 Node.js 中执行 Smartsheet OAuth。它本身就很好用!然后,当我尝试将此 node.js 页面集成到 Django 中时,我从我设置的第二个服务器收到错误,即在给定的 (12.0.0.1:{port}) 本地 url 上已经有一个服务器。也许 OAuth 应该改用 python 编写,但我找不到它的示例代码,所以如果我能将它保留在 Node 中会很棒。

问题- 有没有办法将组件从 Node 和 Django 部署到同一个服务器/域?让用户访问一个站点,完成他们的 oauth,只是为了被推送到一个完全独立的域,这很奇怪。这也可能带来安全风险。

我的尝试- 我想我会创建一个简单的登录页面,然后在登录后,在网站上(在重定向 url 上)向用户射击。这就是 Django urls.py 的样子:

from django.urls import path
from . import views


urlpatterns = [
    path('', views.oauth ), //Views.oauth is fairy blank, and I wanted my Node.JS server
                            //to listen at that hostname:port
    path('loggedin/', views.index ), //when oauth ended, I wanted it to send the user here
]

此尝试出现以下错误: Django Error Node Error

感谢您对我的询问提出任何想法!

【问题讨论】:

    标签: node.js django server oauth smartsheet-api


    【解决方案1】:

    微服务基本上是通过 REST 或任何类型的 api 互连的小组件,您所说的就是微服务架构。

    现在,您可以在某个端口上部署 Django,比如 8090,而在另一个端口上部署 NodeJS,比如 8080

    现在,要连接它们,您需要某种反向代理,最简单的就是 nginx。

    所以,规则会是这样的。

    如果 url 是 host/api 将流量转发到 NodeJS 127.0.0.1:8080 端口。 否则将流量转发到127.0.0.1:8090

    这个问题就是一个例子:NGINX - Reverse proxy multiple API on different ports

    server {
    {
        listen 443;
        server_name localhost;
    
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    
        location /api/orders {
            proxy_pass https://localhost:5000;
        }
        location /api/customers {
            proxy_pass https://localhost:4000;
        }
    }
    

    所以规则说如果位置是/api/orders,则转到localhost:5000,如果是/api/customers,则转到另一个,即4000端口一。

    现在,您可以研究反​​向代理,并可能想出自己的规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多