Nginx сохраняет $ request_uri - PullRequest
       8

Nginx сохраняет $ request_uri

0 голосов
/ 20 декабря 2018

Я не уверен, что поведение, которое я хочу, действительно возможно изначально с nginx, но здесь идет речь.

У меня есть сервер, работающий на порту 81 со следующей конфигурацией nginx:

CONFIGURATION OF SERVER1 NGINX
server {
       listen 81;
       server_name SERVER_DNS_NAME;

       location /server1 {
                proxy_pass http://127.0.0.1:8084/;
                proxy_set_header Host $host;
       }

       location / {
                    proxy_pass http://127.0.0.1:8084;
                    proxy_set_header Host $host:$server_port;
                    }

       }

У меня есть другой сервер, работающий на порту 82 с аналогичной конфигурацией.Теперь, что я хотел бы сделать, так это иметь возможность посетить оба порта с 80-го порта с разными URIS.

Например: URL / server1 приведет меня к первому серверу, а URL / server2 приведет меня ко второму.

CONFIGURATION OF NGINX LISTENING ON PORT 80
server {
       listen SERVER_IP:80;
       location /server1{
                    proxy_set_header Host $host;
                    http://SERVER_IP:81;


                    }
        location /server2 {
                 proxy_pass http://SERVER_IP:82;
                 proxy_set_header Host $host;
        }

Это прекрасно работает, когда я захожу на URL / server1.Я успешно направлен на главную страницу на сервере1.Однако, как только я нажимаю на любую из ссылок, присутствующих на странице на сервере server1, я получаю 404. Это происходит потому, что сайт пытается перейти к URL / some_subdir_of_server1 (для которого нет сопоставления), а не выполняет URL / server1 / some_subdir_of_server1.Это поведение выполнимо?Если да, то как?

Спасибо!

1 Ответ

0 голосов
/ 20 декабря 2018

Будьте осторожны с конечными косыми чертами: в вашем примере у вас есть proxy_pass http://SERVER_IP:81/;, который установит для прокси-URL-адреса значение root /

...