Создание другого сетевого прыжка сервера

По сути, я пытаюсь настроить свой сервер как "точку фильтра".

Если я сделаю трассировку на свой сервер, скажем, я получу:

  • Хоп № 1
  • Хмель № 2
  • Хоп № 3
  • Back-end (мой сервер IP)

Я хочу поставить свой сервер перед своим бэкэндом, возможно ли это сделать, не связываясь с центром обработки данных, не касаясь BGP или чего-то подобного? Так будет и так:

  • Хоп № 1
  • Хмель № 2
  • Хоп № 3
  • Мой сервер
  • Back-конец

Я в основном хочу направить весь свой трафик через этот сервер до серверной части.

1 ответ

Решение

Если вы не (или не можете) манипулировать своей инфраструктурой на сетевом уровне, вы не сможете изменить результаты трассировки.

Однако вы все равно можете настроить конфигурацию, в которой трафик, связанный с пунктом назначения, проходит через промежуточный сервер с помощью прокси-программного обеспечения.

Популярный пример - nginx.

Например, у меня дома установлен прокси-сервер, который помогает обеспечить единую целевую страницу для нескольких служб на разных машинах. Из внешнего мира весь трафик связывается с прокси-сервером, а за прокси-трафиком перенаправляется на соответствующий сервер на основе сопоставления шаблонов URL.

В основном, установка выглядит так:

+---------+
|         |
| Client  |
|         |
+---+-----+
    |
    v

+----------+
|          |
| Internet |
|          |
+---+------+
    |                                      +----------+
    v                                      |          |
                                  +----->  | Server A |
+-------+                         |        |          |
|       +-----> home.url/servicea +        +----------+
| Proxy |
|       +-----> home.url/serviceb +        +----------+
+-------+                         |        |          |
                                  +----->  | Server B |
                                           |          |
                                           +----------+

Прокси-сервер nginx проверяет URL-адрес, предоставленный клиентом, и перенаправляет его на правильный сервер на основе соответствующих правил.

Простое приближение конфигурации было бы:

server {
    location /servera {
        proxy_pass http://servera:80;
    }

    location /serverb {
        proxy_pass http://serverb:80;
    }
}
Другие вопросы по тегам