Наша компания разрабатывает новое решение SaaS, которое будет использоваться торговыми посредниками и их клиентами. Для клиентов наших торговых посредников решение должно быть оформлено так, как будто это программное обеспечение от самого торгового посредника. Это полностью реализовано, за исключением одного URL.
Я провел много исследований, как скрыть URL / URI, и обратный прокси-сервер кажется лучшим решением. Я читал кое-что о различных программных приложениях, которые я могу использовать для создания обратного прокси, и Nginx кажется идеальным для этой работы.
Я установил новый сервер CentOS и установил на него Nginx. Это было довольно просто (даже для меня, как Linix noob). После некоторой борьбы с файлом конфигурации я нашел, как настроить Nginx как обратный прокси.
Теперь, когда я просматриваю свой IP-адрес прокси (например, 192.168.1.100/SaaS), я вижу решение SaaS с другим IP-адресом. В адресной строке я вижу ip обратного прокси, именно так, как хотелось!
После того, как я нажму ссылку или кнопку в решении SaaS, IP-адрес в адресной строке изменится на настоящий IP-адрес решения SaaS.
Я читаю этот, этот, этот и многие другие темы, но я не могу заставить это работать.
Часть моей конфигурации "местоположение" выглядит так:
location /SaaS {
proxy_pass http://192.168.1.200/login/;
}
Как только измените его на это (правильную конфигурацию я нашел в Интернете в нескольких статьях)
location /SaaS {
proxy_pass http://192.168.1.200/login;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include /etc/nginx/proxy_params;
}
У меня появляется ошибка «Страница, которую вы ищете, не найдена». из Nginx. Что я не так?
вам нужно либо использовать плагин поиска / замены, либо обновить каждую ссылку в вашем приложении SaaS, чтобы использовать IP-адрес nginx (вместо этого настоятельно рекомендуется использовать DNS)
https://www.nginx.com/resources/wiki/modules/substitutions/
замените IP-адрес бэкэнда на IP-адрес прокси, обычно можно переписать $ host, как у вас, но кажется, что ваши ссылки не используют переменную для установки своего URL-адреса.
Пример:
server {
listen 80;
listen [::]:80;
server_name sub-test.jacobdevans.com;
root /var/www/html/test;
location / {
sub_filter 'abc-test.jacobdevans.com' 'sub-test.jacobdevans.com';
sub_filter_once off;
}
}
server {
listen 80;
listen [::]:80;
server_name abc-test.jacobdevans.com;
root /var/www/html/test;
location / {
sub_filter '123-test.jacobdevans.com' 'abc-test.jacobdevans.com';
sub_filter_once off;
}
}
server {
listen 80;
listen [::]:80;
server_name 123-test.jacobdevans.com;
root /var/www/html/test;
location / {
sub_filter 'sub-test.jacobdevans.com' '123-test.jacobdevans.com';
sub_filter_once off;
}
}