У меня есть обратный прокси-сервер nginx на моем сайте в IIS, и вот моя конфигурация nginx:
ОБНОВЛЕНИЕ
upstream backend {
server 43.128.77.101;
}
server {
server_name domain.subdomain.com;
location /products {
if ($query_string ~ Jeans){
return 301 /get-all-products/?filter=jeans;
}
if ($query_string ~ Shirts){
return 301 /get-all-products/?filter=shirts;
}
if ($query_string ~ Hats){
return 301 /get-all-products/?filter=hats;
}
}
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Перенаправляет со страницы /products
на определенные URL-адреса по строке запроса.Но для страницы /products-available
происходит сбой с ошибкой 404. Журнал ошибок Nginx содержит ошибку:
"/ usr / share / nginx / html / products-available" не удалось (2: такой файл или каталог не найдены))
Страница /products-available
не требует перенаправлений.Я хочу, чтобы он проходил на бэкэнд-сервере IIS как есть.Как я могу сказать nginx пройти через это?Что я делаю не так?
Спасибо.