gpt4 book ai didi

asp.net - 使用 nginx 作为 IIS 服务器的反向代理

转载 作者:行者123 更新时间:2023-12-02 09:50:33 25 4
gpt4 key购买 nike

我在单个 IIS 服务器上运行多个 ASP.NET 应用程序,每个应用程序具有不同的端口。

我在同一台服务器上安装了 nginx,以便我的客户端只能使用端口 80 访问我的所有应用程序。

Nginx 在端口 80 上运行正常。我的个人 ASP.NET 应用程序也已启动并运行。

我在 nginx conf 文件中进行了这些更改

    location /students/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:84;
}
location /registration/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:82;
}

然后我重新启动了 nginx 并输入了 url http://127.0.0.1/students/在我的浏览器中。 Nginx 提供了 404 页面。

我没有对 conf 文件进行其他更改。

我做错了什么?

最佳答案

我相信您遇到的问题与 URL 路径的开头有关。 URL http://120.0.0.1:84/students/ 返回页面还是 404?如果您希望访问 http://127.0.0.1:80/students/ 并查看 http://127.0.0.1/ 页面,您会发现nginx 不会使用此配置为您转换路径。相反,它在代理服务器上查找完全相同的路径。

您需要将 / 放在 proxy_pass 指令中的 URL 末尾:

location /students/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:84/;
}

这是 nginx 配置中一个微妙但重要的问题!如果不包含反斜杠,http://127.0.0.1:84 将被视为服务器位置。如果确实有反斜杠,它将被视为 URL,并且它将替换代理 URL 中直到“位置”部分的所有内容。

关于asp.net - 使用 nginx 作为 IIS 服务器的反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33226750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com