如何让 Tornado Web 服务器仅服务于本地请求(来自 Django)?

How to allow Tornado Web Server serve only local requests (from Django)?

我在主项目中使用 Django,在一些异步工作人员中使用 Tornado。

因此,一些 Django 应用程序通过 http 请求 Tornado。

并且可以在浏览器中通过 mywebsite.com:8888 访问 Tornado 服务器。

如果可能的话,我想为用户抛出 403 错误或完全禁用它,并使其仅对来自 Django 的本地请求有效。

我该怎么做? nginx 可以帮助我吗?或者 Tornado 有什么很酷的功能?或者一些 unix 人员?

非常感谢您的建议!

如果 Django 和 Tornado 运行 在同一台服务器上,您可以通过调用 .listen() 并使用适当的参数将 Tornado 绑定到 127.0.0.1:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(8888, address='127.0.0.1')
    tornado.ioloop.IOLoop.current().start()