【发布时间】:2018-10-05 14:26:31
【问题描述】:
我在 IIS 上对我的站点有 nginx 反向代理,这是我的 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通过它?我做错了什么?
谢谢。
【问题讨论】:
标签: nginx nginx-location nginx-reverse-proxy