我已通过以下方式使用NGINX设置了IIS:
public_facing_IIS-> NGINX [速率限制]-> internal_IIS
用户点击公共网站URL,该URL将请求转发到NGINX,然后将其转发到内部IIS服务器。该链的原因是,我需要将NGINX的hits限制为internal_IIS的特定数字-我不希望在公共URL端进行速率限制。这样做在通过代理设置上游时,出现404错误。
因此,该方法适用于面向公众的IIS网站上的任何链接,但是一旦进入/ Billing /路径,就会收到404错误
http{
upstream myupstream {
server internal.IISwebsite:80;
}
server {
listen 81;
server_name internal.nginx;
location / {
proxy_pass http://internal.IISwebsite;
}
location /Billing/ {
limit_req zone=mylimit burst=20;
proxy_set_header Host $host;
proxy_pass http://myupstream/;
}
}
}
即使绕过external_IIS URL并直接调用internal.nginx:81,我也尝试过此操作。对于http://internal.nginx:81上的所有其他网址,这一切都很好。我碰到http://internal.nginx:81/Billing/的那一刻是我收到http 404错误。