Как сделать несколько серверов на Flask на порте 80 для разных доменов?
Как сделать несколько серверов на Flask на порте 80 для разных доменов? P.S.: У меня сервер на Ubuntu 20.04
Ответы (1 шт):
Для запуска нескольких серверов Flask на порте 80 для разных доменов вам понадобится использовать несколько экземпляров приложения Flask и настроить проксирование запросов на соответствующие серверы. Вот основные шаги:
- Установите необходимые пакеты Flask:
$ pip install flask
- Создайте несколько файлов
app.pyдля каждого сервера Flask. Каждый файл должен содержать отдельную конфигурацию для своего домена.
Например, создайте файлы app1.py и app2.py с следующим содержимым:
# app1.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'This is server 1'
if __name__ == '__main__':
app.run()
# app2.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'This is server 2'
if __name__ == '__main__':
app.run()
- Настройте веб-сервер (например, Nginx или Apache) для проксирования запросов на соответствующие серверы Flask. Это можно сделать с помощью настройки виртуальных хостов.
Например, для Nginx создайте два конфигурационных файла server1.conf и server2.conf в директории /etc/nginx/conf.d/:
# server1.conf
server {
listen 80;
server_name domain1.com;
location / {
proxy_pass http://127.0.0.1:5000; # Проксируйте запросы на порт, на котором запущен первый сервер Flask
proxy_set_header Host $host;
}
}
# server2.conf
server {
listen 80;
server_name domain2.com;
location / {
proxy_pass http://127.0.0.1:5001; # Проксируйте запросы на порт, на котором запущен второй сервер Flask
proxy_set_header Host $host;
}
}
- Перезапустите веб-сервер, чтобы применить изменения в конфигурации.
Теперь сервер Flask для domain1.com будет доступен по адресу http://domain1.com, а сервер Flask для domain2.com - по адресу http://domain2.com. Используйте соответствующие домены при настройке DNS-записей.