如何使Apache2停止拒绝在端口8080上提供Flask(而在端口80上提供它?)

时间:2019-07-10 14:28:15

标签: flask apache2 mod-wsgi wsgi

我正在尝试制作一个使用Python和Flask制作的“ Hello world”应用程序。我希望将它与Apache2部署在端口8080上。

到目前为止,我的Apache2服务器在端口80上监听http,在端口443上监听https。它在80上没有任何功能,因此我首先尝试在Flask应用中使用它。

按照Flask的文档,我在Apache2上安装了wsgi模块,并在Apache2上创建了Flask配置,并在端口80上附加了VirtualHost。重新启动了Apache2,一切都很好:我在浏览器中看到了“ Hello world”。我很高兴。

然后,我决定只从端口80移到端口8080。我在Apache的ports.conf中添加了Listen指令,在配置中将VirtualHost *:80更改为VirtualHost *:8080。然后我重新启动了Apache2。从那时起,它根本不起作用!

在/var/log/apache2/error.log或其他任何地方,我绝对没有错误消息。

我再次(或无限地)检查了Apache2 ports.conf是否侦听8080。 我在Apache2中检查了我的VirtualHost是否也在8080上。 我检查了8080在重新启动Apache2时是否正在监听...

我不知道什么是行不通的。为什么这在端口80而不在端口8080 ...上起作用?我还有一个443 SSL端口,带有一个VirtualHost,用于同一服务器和ServerName上的另一个应用程序。端口8080可能存在冲突(我必须说我不是Apache2的专家)。

以下是有关我的配置和代码的信息:

Apache2 ports.conf:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80
Listen 8080

<IfModule ssl_module>
   Listen 443
</IfModule>

<IfModule mod_gnutls.c>
   Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我的虚拟主机的Apache2 conf:

<VirtualHost *:8080>
        ServerName aaa.bbb.fr
        #DocumentRoot /var/www/flaskapps/helloworldapp/
        LogLevel trace5
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        WSGIDaemonProcess helloworldapp user=www-data group=www-data threads=5
        WSGIScriptAlias / /var/www/flaskapps/helloworldapp/helloworldapp.wsgi
        <Directory /var/www/flaskapps/helloworldapp>
                WSGIProcessGroup helloworldapp
                WSGIApplicationGroup %{GLOBAL}
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Helloworldapp.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def helloworldapp():
    return 'Hello, World!'
if __name__ == "__main__":
    app.run(port=8080, debug=True)

(端口= 8080似乎无效:它不会阻止我的代码在端口80上运行)

Helloworldapp.wsgi:

#!/usr/bin/python
import sys
sys.path.insert(0, '/var/www/flaskapps/helloworldapp')
from helloworldapp import app as application

netstat -lntp的结果:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -

0 个答案:

没有答案