У меня две конечные точки HTTP, как показано ниже
http://me11.example.local/api/foo
http://me11.example.local/api/boo
Я хочу перенаправить их на две разные конечные точки. В моем конфигурационном файле он работает только для одного URL. как мне настроить это для обеих конечных точек? мой файл конфигурации Nginx выглядит следующим образом
server {
listen 80;
listen [::]:80;
server_name me11.example.local;
location /{
rewrite ^/api/foo / last;
proxy_pass http:localhost:5000;
}
location /{
rewrite ^/api/boo / last;
proxy_pass http:localhost:6000;
}
}
С этой конфигурацией я получил следующую ошибку
duplicate location and so on
Если я удалю один блок местоположения, он будет работать нормально, но мне нужно, чтобы он работал для обеих конечных точек.
Как мне решить эту проблему?
вы можете попробовать что-то подобное:
server {
listen 80;
listen [::]:80;
server_name me11.example.local;
if ($request_uri = "/api/foo") {
rewrite ^/api/foo / last;
proxy_pass http:localhost:5000;
}
if ($request_uri = "/api/boo") {
rewrite ^/api/boo / last;
proxy_pass http:localhost:6000;
}
}
но остерегайтесь if в nginx: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
здесь вы можете проверить переменные nginx.conf: http://nginx.org/en/docs/varindex.html
С Уважением,