В настоящее время в моей конфигурации я настроил домен example.com для подключения к веб-сайту. Затем подключите control.example.com к панели управления с портом 2054. Таким образом, для доступа к панели управления это будет https://control.example.com:2054 ; однако по какой-то причине я также могу получить доступ к панели управления, перейдя по https://example.com:2054 без субдомена.

Есть ли способ предотвратить это, и только сделать https://control.example.com:2054/ , не позволяя https://example.com:2054/ получить доступ?

1 ответ1

0

Есть ли способ предотвратить это, и только сделать https://control.example.com:2054/ , не позволяя https://example.com:2054/ получить доступ?

Да. Самый простой способ - использовать Nginx в качестве обратного прокси. Базовый обзор использования Nginx в этом качестве можно найти здесь.

Короче говоря, вы хотите настроить два серверных блока, как показано ниже:

# Block access to example.com:2054, assuming Nginx is servicing that port.
#
server {
    listen       2054;
    server_name  example.com;

    # 404 - Not Found is returned, but 403 - Forbidden is another option
    location / {
        return 404;
    }
}

# another (unblocked) virtual host on the same port e.g. control.example.com:2054
#
server {
    listen       2054;
    server_name  control.example.com;

    # Proxy our web data
    location / {
    proxy_pass      http://10.0.0.10:3005;
    }
}

В этом примере предполагается, что используются два разных порта, поскольку с этой настройкой легко работать. Порт, к которому вы хотите получить публичный доступ к службе, должен быть перенаправлен, а внутренний (фактический) порт службы - нет. IP-адрес proxy_pass должен (очевидно) быть IP-адресом ПК, на котором запущена служба, к которой вы хотите получить доступ.

Если вышеприведенное решение вам не подходит, учтите, что вы можете что-то сделать с iptables или аналогичным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .