在远程主机(非本地)上使用 flask virtualenv

using flask virtualenv on remote host (not locally)

我有一个 CentOS 7 WSGI 启用 Apache Httpd 服务器(在 VirtualBox 机器上),它在 http://www.myflask.com 端口 80 上为我开发的 Flask 站点提供服务。

因为我无法在那里进行调试(即使我尽我所能),就像我可以在 http://127.0.0.1:5000 的 virutalenv 中设置的本地版本一样,我试图这样做:

我确实以以下 httpd.conf 虚拟主机部分结束:

    <VirtualHost *:80>

    DocumentRoot "/var/www/myflaskv/myflask"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/var/www/myflaskv/myflask">
        Options Indexes FollowSymLinks MultiViews
        Order deny,allow
        Allow from all
    </Directory>

    WSGIScriptAlias / /var/www/myflaskv/myflask/index.wsgi

    ServerName www.myflask.com:80

</VirtualHost>

我可以加载页面 http://www.myflask.com(即使激活了 virtualenv)但是我无法加载页面 http://www.myflask.com:5000正如我想调试的那样。

所以我尝试在端口 5000 上添加一个虚拟主机:

<VirtualHost *:5000>

    DocumentRoot "/var/www/myflaskv/myflask"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/var/www/myflaskv/myflask">
        Options Indexes FollowSymLinks MultiViews
        Order deny,allow
        Allow from all
    </Directory>

    WSGIScriptAlias / /var/www/myflaskv/myflask/index.wsgi

    ServerName www.myflaskv.com:5000

</VirtualHost>

假设这样我可以加载 http://www.myfaskv.com,但我不能 (ERR_CONNECTION_REFUSED)。

顺便说一句,我暂时停用了 ip-tables 和 se-linux。

那么有没有办法从浏览器加载远程主机的 127.0.0.1:5000 ip 地址? 或者有更好的方法在 wsgi apache 开发环境中调试 flask 吗?

如果您想从框外访问 url,您必须 运行 位于 0.0.0.0:5000 的服务器。

url http://127.0.0.1:5000 无法从您 运行 进入的框外访问。

当您使用 wsgi 访问您的应用程序时,错误消息和堆栈跟踪将写入 Web 服务器错误日志,默认情况下位于 /var/log/apache2/error.log。您不需要使用 virtualenv 网络服务器。只需将您需要的任何调试输出写入本地日志文件(如果您有要打印的调试输入)并在 Apache 错误日志中查找堆栈跟踪。