Моя установка: Raspberry Pi, которая является частью 2 отдельных локальных сетей (192.168.1. * И 192.168.2. *), Работает под управлением nginx. Я хотел бы настроить nginx в качестве обратного прокси-сервера, чтобы получить доступ к маршрутизатору первой локальной сети из второй локальной сети. (Прямой доступ к роутеру извне его локальной сети невозможен)
Итак, с компьютера во второй локальной сети (скажем, 192.168.2.10) я хочу перейти по адресу pi во второй локальной сети (скажем, 192.168.2.2), и я хочу, чтобы его перенаправили на веб-интерфейс маршрутизатора в первой локальной сети (192.168.1.1).
С настройкой, которую я сделал, это работает частично: он перенаправляет в правильное местоположение, но возникают проблемы с загрузкой сайта, так как для каждого файла .js и .css (которые являются ссылочными встроенными в загружаемом html), я получаю ошибку 403 «запрещено».
Доступ к веб-сайту маршрутизатора напрямую из pi работает без проблем, поэтому проблема связана с настройкой обратного прокси-сервера.
Вот то, что я установил и сообщения об ошибках (что я не определяю, означает, что это значение по умолчанию / настройка)
NGINX CONFIG:
location / {
proxy_bind 192.168.1.2;
include /etc/nginx/mime.types;
default_type application/octet-stream;
proxy_pass http://192.168.1.1/;
}
192.168.1.2 - это адрес пи в первой локальной сети. 192.168.1.1 - это адрес маршрутизатора (часть первой локальной сети), к которому я хочу получить доступ.
Пример ошибки, которую я вижу в консоли разработчика веб-браузера (это относится ко всем файлам .js и .css):
HTTP403: FORBIDDEN - The server understood the request, but is refusing to fulfil it. GET - http://192.168.2.2/css/main.css
Соответствующая строка в access.log nginx:
"GET /css/main.css HTTP/1.1" 403 100 "http://192.168.2.2/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"
Я не уверен, но в строке выше он показывает 192.168.2.2 в качестве реферера. Так как роутер находится в 192.168.1.* LAN Я думаю, что это может быть причиной разрешения. Игра с "proxy_set_header Referer" дает точно такие же результаты, так что я могу ошибаться?
Соответствующая строка html в исходном файле (видно при использовании curl непосредственно из pi):
<link rel="stylesheet" href="../css/main.css">
Я уже пробовал много разных настроек (я играл с заголовком Host/Referer/X-Forwarded-For), но результат всегда одинаков. Поскольку это встроенный веб-сайт управления маршрутизатором, я не могу изменить разрешения для этих файлов (я не думаю, что это необходимо, так как он работает без использования прокси-сервера). Я также понятия не имею, какой будет корневая папка (это TP-Link MR400).
Некоторая дополнительная информация: если я открою веб-браузер в локальной сети маршрутизатора и вручную перейду по адресу http://192.168.1.1/css/main.css, я также получу 403 Запрещено. Переход на http://192.168.1.1/, однако загружает встроенную таблицу стилей без каких-либо проблем. Надеюсь, это поможет определить проблему с разрешениями?
Что мне не хватает?
Заранее спасибо, Вим