
У меня есть сервер Linux в локальной сети с несколькими запущенными службами. Я хочу иметь возможность доступа к этому серверу по имени моего домена с шифрованием, но оставляя доступ по локальной сети свободным. Я пробовал искать его, но ничего не выдал. Создание другого VirtualHost
сервера с внутренним IP-адресом позволило внешней сети подключаться без шифрования.
Кстати, можно ли на том же основании отказать в доступе к каталогу?
Редактировать: Я думаю, я просто зашифрую все и не буду заморачиваться с тем, чтобы сделать это доступным по IP.
решение1
Я разобрался. Я просто не перенаправил порт 80 на роутере и отключил перенаправление http на https на сервере.
решение2
Вы можете использовать команды управления доступом Apache mod_authz_core
— это основной модуль, и вам не нужно устанавливать или включать что-либо специальное.
Смотрите обучающую программу здесь:https://httpd.apache.org/docs/2.4/howto/access.html
Чтобы использовать его, настройте его в <VirtualHost>
разделе <Directory>
- эта инструкция должна быть установлена в разделе , <Directory>
поэтому у вас должен быть <Directory>
раздел в вашем, <VirtualHost>
даже если вы планируете использовать обработку каталогов по умолчанию, настроенную в другом месте:
<VirtualHost *:80>
DocumentRoot "/some/docroot"
ServerName my.domain.com
<Directory "/some/docroot">
<RequireAll>
Require ip 192.168.1.0/24
</RequireAll>
</Directory>
</VirtualHost>
Это приведет к тому, что все вызовы на порт 80 из-за пределов вашей локальной сети (здесь представлен как 192.168.1.0/24 — измените в соответствии с вашим фактическим адресом локальной сети) будут получать ответ 403 Forbidden
.