Я пытаюсь создать приложение "Hello world" с Python и Flask.Я хочу, чтобы он был развернут с Apache2 на порту 8080.
До сих пор мой сервер Apache2 прослушивал порт 80 для http и порт 443 для https.На 80 нет ничего, поэтому я сначала попытался использовать его для своего приложения Flask.
Следуя документации Flask, я установил модуль wsgi на Apache2 и создал свою конфигурацию Flask в Apache2 с VirtualHost, подключенным к порту 80. Я перезапустил Apache2, и все было хорошо: я увидел «Hello world» в своем браузере,И я был счастлив.
Затем я решил просто перейти с порта 80 на порт 8080. Я добавил директиву Listen в ports.conf на Apache, я изменил 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 -