Добрый день! Имеется портал на битрикс, публичная его часть (portal.company.ru) должна быть доступна только через VPN, а раздел portal.company.ru/extranet должен быть доступен для всего интернета.
Средствами nginx пытался сделать ограничение для доступа по VPN, отрабатывает отлично :
location / {
allow <ext_office_IP>;
allow <ext__office_IP>;
deny all;
proxy_pass http://10.16.0.18:80;
proxy_redirect http://10.16.0.18:80 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
А вот с частью Extranet нюансы:
location /bitrix/ {
proxy_pass http://10.16.0.18:80;
proxy_redirect http://10.16.0.18:80 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /extranet/ {
proxy_pass http://10.16.0.18:80;
proxy_redirect http://10.16.0.18:80 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Так как при входе на часть Extranet, подгружаются js и css из /bitrix, то выдает 403 - это вроде бы решил, добавив ещё один location /bitrix, но после авторизации в Extranet некоторые ссылки ведут на portal.company.ru, который доступен только через VPN , и я снова у разбитого корыта с 403 ошибкой. Подскажите, пожалуйста, как корректно можно настроить разграничение.
Может, есть способ сделать это через map и $http_referer ?
Cпасибо.