使用 Asp.Net 核心应用程序反向代理配置 NGINX 作为 IIS 的子文件夹
Configure NGINX with Asp.Net Core Application Reverse Proxy as SubFolder like IIS
我正在尝试将 NGINX 配置为反向代理,就像微软官方教程一样:
https://docs.microsoft.com/pt-br/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0
但是在 IIS 中,我可以将我的应用程序配置为这样访问:
http:///localhost/name.of.app/
并且 IIS 通过 IP 公开应用程序,如下所示:
http://192.168.x.x/name.of.app/
我发现在 NGINX 中工作的唯一方法就像上面那样:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name appname.*;
index index;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
但是这样一来,应用:
- 不对外暴露
- Url是这样的:
http://appname.localhost
在这个地狱里我需要做什么才能像 IIS 一样配置和工作?
提前致谢。
问题已解决。
在 NGINX 中使用:
location /appname
并在 asp.net 中添加
app.UsePathBase("/appname");
我正在尝试将 NGINX 配置为反向代理,就像微软官方教程一样: https://docs.microsoft.com/pt-br/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0
但是在 IIS 中,我可以将我的应用程序配置为这样访问: http:///localhost/name.of.app/
并且 IIS 通过 IP 公开应用程序,如下所示: http://192.168.x.x/name.of.app/
我发现在 NGINX 中工作的唯一方法就像上面那样:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name appname.*;
index index;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
但是这样一来,应用:
- 不对外暴露
- Url是这样的: http://appname.localhost
在这个地狱里我需要做什么才能像 IIS 一样配置和工作?
提前致谢。
问题已解决。
在 NGINX 中使用:
location /appname
并在 asp.net 中添加
app.UsePathBase("/appname");