Обратный прокси-сервер nginx для нескольких внутренних серверов в зависимости от URL - PullRequest
0 голосов
/ 27 июня 2018

У меня есть 1 внешний сервер Nginx и 2 внутренних сервера nginx.

Фронтенд-сервер передает прокси на бэкэнд-сервер. Раньше был только 1 бэкэнд-сервер, поэтому все мои запросы отправлялись на один бэкэнд-сервер, но по мере увеличения трафика я добавил еще 1 бэкэнд-сервер только для поисковых запросов.

Но я не могу сделать только поисковые запросы для перехода на 2-й бэкэнд-сервер.

моя текущая конфигурация такая.

server {
listen 80;
server_name example.com;

    location /search/ {
        proxy_pass https://search.example.com/;
        proxy_set_header Host search.example.com;

        #set custom headers for upstream server
        proxy_set_header Accept-Encoding "";
        proxy_set_header CF-Connecting-IP "";
        proxy_ssl_verify off;
        proxy_ssl_server_name on;

        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        proxy_pass https://box1.example.com/;
        proxy_set_header Host box1.example.com;

        #set custom headers for upstream server
        proxy_set_header Accept-Encoding "";
        proxy_set_header CF-Connecting-IP "";
        proxy_ssl_verify off;
        proxy_ssl_server_name on;

        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

То, что я хочу сделать, это.

Если URL-адрес

https://example.com/search/test/1/8/0 

затем обратный прокси на search.example.com

иначе обратный прокси все остальные запросы к box1.example.com

моя текущая конфигурация выдает 404 not found ошибок для search queries.

Как я могу это исправить?

...