asyaevloeva
@asyaevloeva

Как приложение на flask перевести с локалхост на другой домен?

приложение на локалке работает, но когда меняю на другой хост,
app.run(host='my_website.com', port=1234)
то вылетает ошибка:
* Serving Flask app 'app' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "run.py", line 48, in <module>
    app.run(host='my_website.com', port=1234)
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 922, in run
    run_simple(t.cast(str, host), port, self, **options)
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 1008, in run_simple
    inner()
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 948, in inner
    srv = make_server(
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 780, in make_server
    return ThreadedWSGIServer(
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 686, in __init__
    super().__init__(server_address, handler)  # type: ignore
  File "/usr/lib/python3.8/socketserver.py", line 452, in __init__
    self.server_bind()
  File "/usr/lib/python3.8/http/server.py", line 138, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.8/socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 99] Cannot assign requested address

OSError: [Errno 99] Cannot assign requested address

как мне связать приложение с моим новым хостом?
  • Вопрос задан
  • 1302 просмотра
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
На всякий случай напомню, что если хотите разместить ваше приложение за доменом вам нужно:
- купить домен у регистратора (простите, но, судя по вопросу, не очевидно, что вы это сделали),
- разместить ваше приложение на машине с белым IP (заказать его у вашего провайдера или арендовать виртуальную машину у какого-нибудь хостера. Можно еще с dyndns повозиться, но это более сложный путь)
- прописать ip вашей машины у доменного хостера добавив A-запись за вашим доменом.
- на вашей машине с белым ip запустить приложение например на 80 порту (если не нужен ssl) и убедиться, что файрволл не не закрывает его.

Однако если вы фласк будете публиковать так напрямую, ничего хорошего из этого не выйдет.
В принципе, с этого момента ваше приложение будет торчать портом наружу и доступно через домен.
Но часто нужно кроме приложения раздавать статику и заворачивать трафик в ssl `(для https). Для этого на машине запускают еще nginx или другой проксирующий веб-сервер. Через него вы и flask можете раздавать по uwsgi.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы