
В настоящее время в моей конфигурации я настроил домен 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
Есть ли способ предотвратить это и сделать только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или похожие.