Для реализации редиректа на другой сервер с сохранением текущего доменного имени с помощью PHP можно использовать функцию header(). Она позволяет отправить заголовок Location для перенаправления на указанный URL.
Пример кода PHP для редиректа с сохранением текущего домена:
```php
<?php
$redirect_url = 'http://новый_сервер' . $_SERVER['REQUEST_URI']; // новый_сервер - адрес нового сервера
header('Location: ' . $redirect_url);
exit();
?>
```
В данной реализации мы объединяем адрес нового сервера с текущим запросом ($_SERVER['REQUEST_URI']), чтобы сохранить путь и параметры запроса.
Что касается настройки балансировщика нагрузки с сохранением домена в адресной строке браузера, то это зависит от используемого балансировщика. Ниже приведены примеры настройки балансировщиков нагрузки с использованием Apache и Nginx.
Настройка Apache:
1. Установите модуль mod_proxy_balancer:
```
sudo a2enmod proxy_balancer
sudo systemctl restart apache2
```
2. В файле конфигурации Apache (`/etc/apache2/sites-available/000-default.conf`) добавьте следующие строки:
```
<Proxy balancer://mycluster>
BalancerMember http://serverA:80
BalancerMember http://serverB:80
ProxySet lbmethod=byrequests
</Proxy>
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
```
Где `serverA` и `serverB` - адреса серверов, на которые будет выполняться балансировка.
3. Перезапустите Apache:
```
sudo systemctl restart apache2
```
Настройка Nginx:
1. В файле конфигурации Nginx (`/etc/nginx/conf.d/default.conf`) добавьте следующие строки:
```
http {
upstream mycluster {
server serverA;
server serverB;
}
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://mycluster;
proxy_set_header Host $host;
}
}
}
```
Где `serverA` и `serverB` - адреса серверов, на которые будет выполняться балансировка, а `your_domain.com` - ваш домен.
2. Перезапустите Nginx:
```
sudo systemctl restart nginx
```
Теперь при обращении к вашему домену дальнейшая обработка запроса будет выполняться на балансировщике нагрузки, который перенаправит запрос на сервер А или сервер Б, сохраняя домен в адресной строке браузера.