Nginx 多端口运行 Tornado 如何获取当前端口

2015-01-08 15:58:39 +08:00
 jecvay

配置了 Nginx 会将请求分给 8000:8003 四个端口, 我想Tornado建一个页面, 访问这个页面的时候浏览器上能显示出这个页面的请求由哪一个端口获取了, 如何能实现这个功能?

RequestHandler 貌似没有传进来端口号?

7030 次点击
所在节点    Tornado
12 条回复
kenneth
2015-01-08 16:03:06 +08:00
app1.py 你self.write("path 1")
app2.py 你self.write("path 2")
试试
jecvay
2015-01-08 16:04:23 +08:00
@kenneth 这是可以的. 如果我想统一用同一个文件, 不用分成好几个py文件, 能实现吗?
kenneth
2015-01-08 16:05:14 +08:00
@jecvay 我个人觉得不行。但是也许别人知道怎么写,我写不出来。
cloverstd
2015-01-08 16:15:50 +08:00
我想可以通过 nginx 利用 rewrite 把端口通过 HTTP 请求参数传入到 Handler 里面

未验证
rrfeng
2015-01-08 16:38:33 +08:00
RequestHandler 里没有,但是 ioloop 启动的设置里有啊!

直接引用全局变量就行了啊……
spritevan
2015-01-08 16:38:41 +08:00
options.port
9hills
2015-01-08 17:12:23 +08:00
你启动tornado的时候不是传了port么。。
sivacohan
2015-01-08 18:41:09 +08:00
@9hills 我猜他是前面顶了gunicorn 然后启动多个tornado worker 现在想打出一个worker使用的端口
jecvay
2015-01-08 19:36:24 +08:00
@9hills 是, 但是我不知道怎么把这个port变量传到ioloop.start()启动的handler里面
jecvay
2015-01-08 19:37:03 +08:00
@rrfeng 这有点类似 a.py import 了 b.py, 然后 b 里面想要使用 a 里面的变量, 我不知道怎么写
jecvay
2015-01-08 21:12:54 +08:00
啊我知道了.
可以用 tornado.options 进行传递.
kfll
2015-01-09 10:31:36 +08:00
每个实例启动的时候给一个独一无二的环境变量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160351

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX