django - 将项目拆分为两个服务器(由于 Cloudflare)而不复制代码
django - split project to two servers (due to Cloudflare) without duplicating code
我目前在 Cloudflare 后面的服务器上有一个 Django 项目 运行。但是,许多应用程序包含需要与某些 Web 服务同步数据的功能。这是一个安全风险,因为这些 Web 服务可能会泄露我的服务器的 IP 地址。因此我需要一个解决方案来防止这种情况。
到目前为止,我想到了两种选择:使用代理或将项目拆分到两个服务器。一台服务器负责通过 Cloudflare 响应请求,另一台服务器负责与其他 Web 服务同步数据。后一个服务器的IP地址会暴露给public,但是攻击这个服务器不会导致网站下线。我更喜欢第二种解决方案,因为这也会在两台服务器之间分担负载。
问题是我不知道如何在不复制代码的情况下使用 Django 执行此操作。我知道我可以重复使用应用程序,但对于大多数应用程序来说,我只需要模型和序列化器而不是视图等。我应该如何解决这个问题?最好的方法是什么?另外,这两个服务器的适当命名是什么?谢谢
这听起来像是作为部署策略的一部分拆分的单个项目。因此,只使用一个代码库而不是将其分成两个项目是有意义的。如果是这样的话,重复使用不是问题,因为两个服务器都使用相同的代码。
然后,要支持多个部署,您只需创建两个设置文件并在适当的服务器上加载适当的文件。它们的不同程度取决于您。如果您想支持不同的视图,您可以使用不同的 ROOT_URLCONF
设置。 INSTALLED_APPS
可以不同,依此类推。
我目前在 Cloudflare 后面的服务器上有一个 Django 项目 运行。但是,许多应用程序包含需要与某些 Web 服务同步数据的功能。这是一个安全风险,因为这些 Web 服务可能会泄露我的服务器的 IP 地址。因此我需要一个解决方案来防止这种情况。
到目前为止,我想到了两种选择:使用代理或将项目拆分到两个服务器。一台服务器负责通过 Cloudflare 响应请求,另一台服务器负责与其他 Web 服务同步数据。后一个服务器的IP地址会暴露给public,但是攻击这个服务器不会导致网站下线。我更喜欢第二种解决方案,因为这也会在两台服务器之间分担负载。
问题是我不知道如何在不复制代码的情况下使用 Django 执行此操作。我知道我可以重复使用应用程序,但对于大多数应用程序来说,我只需要模型和序列化器而不是视图等。我应该如何解决这个问题?最好的方法是什么?另外,这两个服务器的适当命名是什么?谢谢
这听起来像是作为部署策略的一部分拆分的单个项目。因此,只使用一个代码库而不是将其分成两个项目是有意义的。如果是这样的话,重复使用不是问题,因为两个服务器都使用相同的代码。
然后,要支持多个部署,您只需创建两个设置文件并在适当的服务器上加载适当的文件。它们的不同程度取决于您。如果您想支持不同的视图,您可以使用不同的 ROOT_URLCONF
设置。 INSTALLED_APPS
可以不同,依此类推。