Использовать обратный прокси-сервер от клиента Https к серверу Http, работающему локально на моей машине

У меня есть опубликованный сайт, использующий HTTPS. Сайт должен взаимодействовать с HTTP-узлом Express API. API запускается на моей локальной машине. Все работало нормально, пока я не переключил клиентское приложение на использование HTTPS. Теперь я получаю предупреждения о смешанном содержании. Я читал об обратных прокси-серверах и задаюсь вопросом, может ли это быть решением моей проблемы. Можно ли проксировать запрос на мой локальный хост? Или localhost будет указывать на сервер, на котором находится прокси?

Я рассматривал возможность использования nginx в качестве обратного прокси-сервера, но у меня нет опыта работы с прокси, и я не знаю, как это сделать.

Мне в основном интересно, возможно ли это или нет, прежде чем копать глубже.


person J Edwards    schedule 01.05.2018    source источник


Ответы (1)


Да, это довольно стандартный вариант использования nginx (или любого другого обратного прокси). Вы должны настроить префиксы местоположения и т. д., которые должны перейти к вашему серверному приложению и прокси-серверу (через proxy_pass). Любой статический контент можно обслуживать напрямую из nginx. Все это может потом стоять за nginx.

Предполагая, что ваше приложение никогда не выдает абсолютные URL-адреса, которые используют «http://», это должно устранить ваши предупреждения о смешанном содержании.

Вы, вероятно, захотите прочитать некоторые учебные пособия, но основы вашей конфигурации будут такими:

server {
    listen 443 ssl; # you can also add http2
    server_name hostnames that you listen for;
    ssl_certificate_key /path/to/cert.key;
    ssl_certificate /path/to/cert.pem;

    root /var/www/sites/foo.com;

    location /path/handled/by/application {
        proxy_pass http://localhost:8000; # or whatever port is
    }

}
person Joshua DeWald    schedule 01.05.2018