Рейтинг:0

nginx другое имя для другого порта

флаг pk

У меня есть два веб-приложения (webapp1 порт 7000 и webapp2 порт 8000) для внутреннего использования, размещенные на моем сервере VM с IP-адресом 192.168.15.10 (ubuntu 20.04)

Я хочу посмотреть, можно ли назначить разные имена для двух веб-приложений.

Как я хочу, чтобы все работало:

Если внутренний пользователь вводит webapp1.random-company.com в браузере, он направляет пользователя на webapp1 с портом 7000 (192.168.15.10:7000).

Если внутренний пользователь вводит webapp2.random-company.com в браузере, он направляет пользователя на webapp2 с портом 8000 (192.168.15.10:8000).

Я попытался использовать nginx на 192.168.15.10 и смог направить пользователей на webapp1.random-company.com (192.168.15.10:7000). Однако мне не удалось направить пользователей в webapp2.random-company.На самом деле, когда пользователь вводит webapp1.random-company.com:8000, он направляет пользователя на webapp2.

Возможно ли это?

Одно приложение построено в django, а другое — во фляге.

Рейтинг:0
флаг cn

Не указывайте порты в URL-адресах, сила nginx заключается в его возможности обратного прокси.

Во-первых, создавайте разные конфиги для каждого веб-приложения, а не просто громите все в одной конфигурации сервера — или, что еще хуже, в nginx.conf файл. Установить вверх по течению над вашим основным серверный блок для каждого приложения:

восходящее веб-приложение1 {
    сервер 127.0.0.1:7000 вес=1 fail_timeout=0; #настройки тайм-аута и веса необязательны
    }

Внутри серверных блоков, когда nginx обращается к местоположению «/», вызовите восходящий поток:

сервер {
        слушать 443 ssl http2; #если вы используете HTTPS - что вам следует
        имя_сервера webapp1.random-company.com;
[...]

место расположения / {
        [...]
        прокси_пасс http://webapp1;
    }

Повторить для веб-приложение2 соответственно:

восходящее веб-приложение2 {
    сервер 127.0.0.1:8000;
    }

сервер {
        слушать 443 ssl http2; #если вы используете HTTPS - что вам следует
        имя_сервера webapp2.random-company.com;
        [...]

место расположения / {
        [...]
        прокси_пасс http://webapp2;
    }

Что касается приложений Django / Flask, вам на самом деле не нужно вызывать приложения через TCP/IP, вы можете заставить nginx напрямую прослушивать их сокеты UNIX. Что вы используете для доставки приложения? uWSGI, Гуникорн, (...)?

Дальнейшее чтение для Flask на uWSGI

В общем, это не обязательно тема Ubuntu, возможно, вместо этого вы захотите проверить StackOverflow или Serverfault.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.