使用 Nginx 在 Linux 上托管 ASP.NET Core
内容提要
本文介绍了如何在 Ubuntu 20.04 上使用 Nginx 反向代理托管 ASP.NET Core 应用。步骤包括安装 .NET Core SDK 和 Nginx,发布应用,配置 Nginx 反向代理,最后启动应用并通过浏览器访问以确保请求正确转发。
关键要点
- 本文介绍如何在 Ubuntu 20.04 上使用 Nginx 反向代理托管 ASP.NET Core 应用。
- 先决条件包括安装 .NET Core SDK 和 Nginx,以及已有的 ASP.NET Core 应用。
- 安装 .NET Core SDK 和运行时的步骤包括更新包管理器和安装所需版本。
- 使用 dotnet CLI 工具发布 ASP.NET Core 应用,并将发布后的应用目录复制到 Linux 服务器。
- 在 Ubuntu 上安装 Nginx,并确认其正在运行。
- 配置 Nginx 作为反向代理,包括编辑配置文件和设置反向代理规则。
- 配置 ASP.NET Core 应用以处理转发头信息,确保请求正确解析。
- 启动 ASP.NET Core 应用,并确保其监听地址与 Nginx 配置一致。
- 通过浏览器访问应用,验证 Nginx 是否成功转发请求到 ASP.NET Core 应用。
延伸问答
如何在 Ubuntu 20.04 上安装 .NET Core SDK 和 Nginx?
可以使用以下命令安装:首先更新包管理器,然后安装 .NET Core SDK 和运行时:sudo apt-get update,sudo apt-get install -y apt-transport-https,wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb,sudo dpkg -i packages-microsoft-prod.deb,sudo apt-get install -y dotnet-sdk-6.0,sudo apt-get install -y dotnet-runtime-6.0。接着安装 Nginx:sudo apt-get install -y nginx。
如何配置 Nginx 作为 ASP.NET Core 应用的反向代理?
编辑 Nginx 配置文件,设置反向代理规则,示例配置包括:server { listen 80; server_name myapp.example.com; location / { proxy_pass http://localhost:5000; } }。然后创建符号链接到 sites-enabled 目录,并重新加载 Nginx 配置。
如何发布 ASP.NET Core 应用到 Linux 服务器?
使用 dotnet CLI 工具发布应用,命令为:dotnet publish -c Release -o /path/to/published。然后使用 SCP 或 SFTP 将发布后的应用目录复制到 Linux 服务器上的指定位置,例如 /var/www/myapp。
如何确保 ASP.NET Core 应用正确处理转发头信息?
在 Startup.cs 或 Program.cs 文件中配置 Forwarded Headers Middleware,使用 app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto });。
如何启动 ASP.NET Core 应用并确保其监听地址正确?
在应用目录中使用命令:dotnet MyApp.dll --urls "http://localhost:5000" 启动应用,确保 --urls 参数与 Nginx 配置中的 proxy_pass 地址和端口一致。
如何验证 Nginx 是否成功转发请求到 ASP.NET Core 应用?
通过浏览器访问 http://myapp.example.com 或服务器的 IP 地址,查看是否能正确显示 ASP.NET Core 应用的响应。