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

前端之家收集整理的这篇文章主要介绍了asp.net – 使用nginx作为IIS服务器的反向代理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有多个ASP.NET应用程序在单个IIS服务器上运行,每个应用程序具有不同的端口.

我已经在同一个服务器上安装了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路径的开始有关.网址http://120.0.0.1:84/students/返回页面还是404?如果您希望访问http://127.0.0.1:80/students/并查看http://127.0.0.1/的页面,您会发现Nginx不会使用此配置转换您的路径.相反,它在代理服务器上查找完全相同的路径.

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

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相关文章