Через инструментальную панель Jelastic я создал это:
Я просто нажал «Новая среда», затем я выбрал nodejs. Я добавил образ докера (из mailhog).
Теперь я хотел бы, чтобы порт 80 моей среды обслуживал приложение nodejs. Это по умолчанию так. Поэтому делать нечего.
В дополнение к этому, я хотел бы, чтобы порт 8080 (или любой другой порт, кроме 80, например, порт 5000) моей среды обслуживал mailhog, размещенный на образе докера. Для этого я добавил следующие строки в nginx-jelastic.conf
(сразу после первого сервера, обслуживающего приложение nodejs):
server {
listen *:8080;
listen [::]:8080;
server_name _;
location / {
proxy_pass http://mailhog_upstream;
}
}
, где я также определил mailhog_upstream
следующим образом:
upstream mailhog_upstream{
server 10.102.8.215; ### DEFUPPROTO for common ###
sticky path=/; keepalive 100;
}
Если я сейчас просматриваю порт 8080 моей среды, то вижу ... приложение nodejs. Если я попробую любой другой порт, кроме 80 или 8080, я ничего не вижу. Ввод другого server_name
не помогает. Я попробовал несколько вещей, но ничего не получается. Почему это? Что я здесь не так делаю?
Затем я попытался избавиться от вышеуказанного mailhog_upstream
и вместо этого написать
server {
listen *:5000;
listen [::]:5000;
server_name _;
location / {
proxy_pass http://10.102.8.215;
}
}
Просмотр порта 5000 среды также не работает.
Если я заменим IP-адрес приложения nodejs на мой сервис mailhog, то mailhog будет работать на порту 80. Я не понимаю, как заставить приложение nodejs работать на порту 80 и сервис mailhogна порт 5000 (или любой другой порт, кроме 80).
Может ли кто-нибудь просветить меня, пожалуйста?
После всех этих неудач я попробовал другой анзац. Предположим, что мой env путь example.com/
. То, что я пробовал выше, это заставить mailhog работать при вызове example.com:5000
, чего я не смог сделатьЗатем я попытался сделать почтовый ящик доступным через example.com/mailhog
. Чтобы сделать это, я избавился от всех своих модификаций, указанных выше, и завершил текущий сервер в nginx-jelastic.conf
с
location /mailhog {
proxy_pass http://10.102.8.96:8025/;
add_header Set-Cookie "SRVGROUP=$group; path=/";
}
. Это работает в том смысле, что если я знаю, просмотрите example.com/mailhog
, то я получучто-то на странице, но не совсем то, что я хочу: это страница mailhog без какого-либо стиля. Кроме того, когда я вызываю API mailhog через example.com/mailhog/api/v2/messages
, я получаю успешный ответ без тела, когда я должен был получить
{"total":0,"count":0,"start":0,"items":[]}
Что я делаю не так в этот раз?
Править
Чтобы быть более точным, я поместил следующий манифест , который демонстрирует вторую проблему с расположением nginx.