如何让 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()
我在主项目中使用 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()