2017-01-12 3 views
1

Установлен и запущен мой Nginx, ниже находится конфигурация от /etc/nginx/nginx.conf, я хочу переслать все /api/* на мой сервер tomcat, который работает на том же сервере в порту 9100 (тип http://myhost:9100/api/apps works), в противном случае, служить статическим файлом в разделе '/ usr/share/nginx/html'. Теперь я печатаю http://myhost/api/apps, давая 404. В чем проблема?Возврат прокси-сервера Nginx 404

upstream myserver { 
    server localhost:9100 weight=1; 
} 

server { 
    listen  80 default_server; 
    listen  [::]:80 default_server; 
    server_name _; 
    root   /usr/share/nginx/html; 

    # Load configuration files for the default server block. 
    include /etc/nginx/default.d/*.conf; 



    location ^~ /api/ { 
     proxy_pass http://myserver/; 
    } 

    location/{ 
    } 
} 

ответ

2

proxy_pass утверждение может необязательно изменить URI перед передачей его вверх по течению. См. this document.

В этой форме:

location ^~ /api/ { 
    proxy_pass http://myserver/; 
} 

URI, /api/foo передается http://myserver/foo.

Удалив концевая / из proxy_pass заявления:

location ^~ /api/ { 
    proxy_pass http://myserver; 
} 

URI, /api/foo теперь передается http://myserver/api/foo.

+0

Большое спасибо, он работает так же, как вы сказали. – July

Смежные вопросы