У меня есть веб-сервер, обслуживающий страницы с локального IP-адреса.
Он находится за NAT, который правильно настроил переадресацию портов для 80 и 443 (проверено путем указания на другой локальный веб-сервер).
При попытке доступа с публичного адреса я получаю 403, в то же время все доступно из локальной сети.
Веб-сервер - это apache.
В каком порядке нужно проверять?
РЕДАКТИРОВАТЬ: Спасибо всем за ответы. Проблема решена.
Я проверил журнал доступа к apache (там упоминается 403), но это не дало мне никакой подсказки. В тот момент мне в основном было интересно, какой ответ дает apache или webapp (drupal). После тройной проверки конфигурации apache я также более тщательно проверил веб-приложение и обнаружил, что нелокальные IP-адреса запрещены.
РЕДАКТИРОВАТЬ 2: Если кто-то предоставит хороший ответ (или расширит существующий) о том, что было бы правильным способом определить, был ли это apache или webapp, я приму его как ответ.
Что говорит журнал ошибок apache? это должно дать вам ключ к разгадке.
Лучшее предположение - дважды проверьте конфигурацию своего веб-сервера - разрешаете ли вы доступ с «любого»? Там может быть правило, разрешающее только локальную подсеть.
Вы используете виртуальные хосты на основе имен в своей конфигурации apache? Как вы подключаетесь из локальной сети и через NAT-маршрутизатор? Если у вас есть виртуальный хостинг на основе имени, заголовок Host в HTTP-запросе определяет, какой виртуальный хост обслуживает запрос. Так, например, если у меня есть что-то вроде:
<VirtualHost *:80>
ServerName my.internal.hostname
.....
</VirtualHost>
<VirtualHost *:80>
ServerName some.other.hostname
...
</VirtualHost>
И я подключаюсь к внешнему маршрутизатору с http: //my.nat.router/, Я могу оказаться на последнем указанном мной виртуальном хосте. Если он настроен на DocumentRoot, у которого нет разрешений, я получаю 403.
Другая возможность может заключаться в том, что у вас указан DocumentRoot, а затем директива Directory, которая не имеет «разрешить от всех», а только что-то вроде «разрешить от 192.168.0.0/24».
403 - доступ запрещен. Вы разрешаете анонимный доступ к apache?