С порта 80 на порт 8000 в AWS EC2 и Load Balancer

У меня есть экземпляр AWS EC2, работающий с балансировщиком нагрузки (LB), прослушивающим порт 443:

введите здесь описание изображения

LB пересылает целевой группе с именем wordpress-80:

введите здесь описание изображения

когда я вхожу в свой домен https://my-domain.com/, я вижу nginx страницу по умолчанию:

введите здесь описание изображенияно вместо этого я хотел бы показать, что работает на порту 8000, поэтому url https://my-domain.com/ напрямую открывает порт 8000. Как настроить nginx? Я попробовал этот ответ, но это не сработало.


person Taz    schedule 21.09.2019    source источник
comment
Почему решение в связанном ответе не сработало? Все, что вам нужно сделать, это настроить nginx для прокси-порта 80 на порт 8000 на локальном хосте. Вы должны быть в состоянии сделать это с помощью ответа, который вы связали, просто изменив 8080 в этом ответе на 8000. Вы получаете сообщение об ошибке или что-то в этом роде, когда пытаетесь это сделать?   -  person Mark B    schedule 21.09.2019
comment
Решение, связанное с @MarkB, приводит к тому, что Safari не может открыть страницу.   -  person Taz    schedule 21.09.2019
comment
Вы предприняли какие-либо шаги, чтобы отладить это? Вы смотрели журналы nginx, чтобы увидеть, получал ли он неверный ответ от сервера, работающего на порту 8000? У вас действительно что-то работает на порту 8000? Что происходит, когда вы подключаетесь по SSH к инстансу EC2 и запускаете curl http://localhost:8000?   -  person Mark B    schedule 21.09.2019
comment
Я внес изменения в nginx конфиг codepile.net/pile/z7BE9rWG и теперь страница открывается, но не полностью загружается и в логах хрома вижу ошибки Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR.   -  person Taz    schedule 21.09.2019
comment
зачем вам nginx? если вы используете балансировщик нагрузки? использовать базовую маршрутизацию хоста и удалить nginx и передать трафик на целевой порт 8000, когда он будет получен в LB. вам не нужно управлять чем-либо на вашем nginx, LB позаботится о маршрутизации. все решает проблему с конфигурацией nginx.   -  person Adiii    schedule 21.09.2019
comment
покажите вашу конфигурацию Nginx и как вы генерируете сертификат? сертификат недействителен, либо он создан для неправильного DNS, либо вы используете неправильную конфигурацию. SSL должен завершаться на уровне LB, и экземпляр будет получать дешифрованный трафик.   -  person Adiii    schedule 21.09.2019


Ответы (1)


вы можете позволить nginx прослушивать 80 и проксировать 8000 следующим образом:

server {
    listen      [::]::80;
    ...
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
    ...
}
person Eslam Abu Hugair    schedule 16.10.2019