nginx - 上游不工作的 nginx proxy_pass 并给出 404 错误
问题描述
我已经通过以下方式使用 NGINX 设置了 IIS:
public_facing_IIS --> NGINX[速率限制] --> internal_IIS
用户点击公共网站 url,将请求转发到 NGINX,然后将其转发到内部 IIS 服务器。这条链的原因是我需要将 NGINX 到 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上的所有其他 url 。我点击http://internal.nginx:81/Billing/的那一刻是我收到 http 404 错误的时候。
解决方案
推荐阅读
- python - 如何根据索引列表插入值?
- amazon-web-services - 如何使用 Ansible 执行跨账户配置?
- python - 如何在 Raspberry Pi 4 中为多个输入设备执行多线程
- scheme - 从列表中在球拍中构建 BST
- unit-testing - absl 命名空间在哪里声明?
- windows - 在 Windows 10 上,如何让 gcc 从标准输入编译
- ios - 为什么初始化CBCentralManager后没有提示允许应用访问蓝牙?
- azure - 如何合并 1 列的重复项,然后在另一列的同一行中有多个结果?
- html - 两个输入字段之间的Angular2 +共享验证
- ios - 为什么我的 viewDidLoad 函数在第二次运行时的行为方式不同?