配置Nginx实现MVC 5应用虚拟目录URL访问遇404错误求助
问题描述
我有一个运行在IIS上的MVC 5应用,原访问地址为http://localhost:8080。现在希望通过http://localhost:8080/app的形式访问该应用,执行以下操作后出现HTTP Error 404.0 - Not Found错误:
- 配置Nginx对
/app路径做URL转发,配置代码:
server { listen 8080; server_name localhost; location /app { proxy_pass http://localhost:8084/; } }
- 在服务器创建目录结构:
C:\intepub\Test\app - 在IIS中创建结构:
IIS
-- Test(虚拟目录)
-- app(作为Test下的Web应用,基于ASP.NET MVC5)
解决方案
1. 修正Nginx的proxy_pass配置
当前Nginx把http://localhost:8080/app转发到http://localhost:8084/,但IIS里的app是Test虚拟目录下的Web应用,实际访问路径应为http://localhost:8084/Test/app。调整配置如下:
server { listen 8080; server_name localhost; location /app { proxy_pass http://localhost:8084/Test/app/; # 传递请求头确保MVC正确识别路径 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
如果Test是独立IIS站点且绑定8084端口,目标路径改为http://localhost:8084/app/即可。
2. 调整MVC应用的路由配置
MVC默认路由未考虑URL前缀,修改RouteConfig.cs添加前缀app,确保应用解析转发后的路径:
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "app/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }
若需同时支持带前缀和不带前缀的访问,可添加两条路由规则:
routes.MapRoute( name: "AppPrefix", url: "app/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
3. 检查IIS应用基础配置
- 确认Web应用
app的物理路径正确指向C:\intepub\Test\app - 确认
app的程序池设置为ASP.NET v4.0(集成模式),且.NET版本与MVC 5兼容 - 确认虚拟目录
Test的权限设置正确,IIS_IUSRS和Authenticated Users拥有读取权限 - 先测试直接访问IIS中app的地址(如
http://localhost:8084/Test/app),若直接访问也报错,优先排查IIS应用本身的配置问题
4. 排查端口占用问题
用以下命令检查Nginx的8080端口和IIS的8084端口是否被其他程序占用:
netstat -ano | findstr "8080" netstat -ano | findstr "8084"
内容的提问来源于stack exchange,提问作者Tech learner
相关产品推荐
相关产品推荐

