2013-09-08 7 views
1

Я пытаюсь использовать proxy_pass в Nginx для пересылки запросов на другой порт на локальной системе, как это:Nginx proxy_pass на локальный

location /foo { 
    rewrite ^/foo/(.*) /$1 break; 
    proxy_pass http://127.0.0.1:8080/; 
} 
location /bar { 
    rewrite ^/bar/(.*) /$1 break; 
    proxy_pass http://localhost:8080/; 
} 
location /blah { 
    rewrite ^/blah/(.*) /$1 break; 
    proxy_pass http://192.168.77.56:8080/; 
} 

Таким образом, только последний из них работает. Первые два дают мне ошибку, недоступную для страницы. Я знаю, что конечная точка работает, так как я могу перейти непосредственно на localhost: 8080 и увидеть результат, который я ожидал.

Любая идея, что я делаю неправильно?

[Изменить]: Дальнейшее просветление ... Кажется, что строка перезаписи имеет какое-то отношение к ней. Использование его, как я здесь, похоже, работает на IP-адресах, отличных от localhost, т. Е. Удаляет/удаляет из пути и сохраняет остальное, поскольку он отправляет его в конечный пункт назначения. Если я удалю строку перезаписи, я могу прокси-серверу на localhost (конечно, потеряв свой отступ другой материал на URL-адресе).

ответ

1

Это сработало:

location /blah { 
    rewrite ^/blah/(.*) /$1 break; 
    proxy_pass http://$server_addr:8080; 
}