【问题标题】:Running tornado & hosting app on different port在不同的端口上运行龙卷风和托管应用程序
【发布时间】:2015-03-08 20:25:54
【问题描述】:

我有一个 Tornado 网络聊天,由于身份验证等各种原因,它必须绝对在默认端口 80 上运行。但是,由于明显的原因,Tornado 网络服务器在端口 8800 上运行(如果可以在同一端口上托管 Tornado端口作为我的网站,我愿意尝试),所以我想要完成的是通过我的控制台运行 Tornado 网络服务器,同时在我网站的默认端口上托管 Tornado 网络聊天。

我将网络聊天的 index.html 移动到我的网站默认文件夹中,因此它类似于 www.example.com/webchat.html 而不是 www.example.com:8800/webchat。然后我用命令运行龙卷风

python webchat.py 

但是当我访问 webchat.html 时,聊天并没有像在端口 8800 上那样运行,因为 该页面未呈现 python。

网络聊天 HTML

<div class="container" style="width: auto; height: 100%;">

         <span>{% raw content %}</span> <!-- The span is not rendered on page -->



</div><!-- /.container -->

<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>

{% if 'chat' in globals() and chat %}
    <!-- Application script -->
    <script src="{{ static_url('stuff.js') }}" type="text/javascript"></script>
        {% end %}

【问题讨论】:

  • “但是 Tornado Web 服务器在 8800 端口上运行的原因很明显” - 这些原因是什么?这对我来说并不明显。
  • 原因是 Tornado 是一个 Web 服务器,不能在同一个端口地址上运行两个 Web 服务器(其他是 apache)......
  • 这是有道理的。不是每个人都在 80 端口上运行服务器,所以有时明确提及它很有用。
  • 出于好奇,哪些身份验证问题迫使您在端口 80 上运行网络聊天?
  • Tornado 有一个用 python 编写的我的网络聊天的预制登录,我更喜欢使用 PHP。

标签: python hosting tornado


【解决方案1】:

我可以建议两个选项:

  1. 如果您的网站是静态的,您可以放弃 apache 服务器,将您的网站移至 tornado,并让 tornado 在/ 路径上为您的网站提供服务。然后在端口 80 上运行 tornado。这可能是最简单的。添加以下内容作为您的最后一个龙卷风处理程序:

    (r'/(.*)', tornado.web.StaticFileHandler, {'path': static_path}),

    static_path 应该是您的 apache 服务网站根目录的路径。

  2. 如果您需要 apache 服务器,那么您可以将 apache 配置为您的 tornado 服务器的反向代理。来自Need help setting up: Apache Reverse Proxy,看来您需要将此添加到您的apache.conf

    ProxyPass /webchat http://localhost:8800/webchat ProxyPassReverse /webchat http://localhost:8800/webchat

    您还需要加载指定的 Apache 模块。

您也可以尝试使用 Tornado 的 WSGI 功能,然后使用 mod_wsgi 配置 Apache。

【讨论】:

  • 好的,谢谢,我更愿意尝试选项 2,因为除非您使用 javascript 加载 php,否则 tornado 无法与 php 一起使用。如果可行,我会更新您并接受答案
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 2011-10-27
相关资源
最近更新 更多