小能豆

net core开发的web站点在linux下虚拟目录部署

javascript

最近开发了一个net core的web站点,运行在linux下面
donet .dll –urls=http://:8080运行可以正常访问,但现在想部署在虚拟目录下面
这个要怎么运行呢,本来以为是donet
.dll –urls=http://:8080/jcc
但直接运行不起来。


阅读 78

收藏
2024-06-22

共1个答案

小能豆

在部署 .NET Core Web 站点到 Linux 下,并希望将其运行在虚拟目录下,需要进行一些配置和调整。以下是正确的步骤和解释:

1. 确定基本概念

在 .NET Core 中,通过 --urls 参数指定的是应用程序监听的端口号和基础 URL 路径,而不是直接设置虚拟目录。虚拟目录的概念通常在 Web 服务器(如 Nginx 或 Apache)中定义,然后由服务器将请求路由到正确的应用程序路径。

2. 步骤

修改 .NET Core 应用程序的监听地址

在启动 .NET Core 应用程序时,使用 --urls 参数指定监听的基础 URL 路径。例如:

dotnet YourApplication.dll --urls=http://localhost:8080

这将使应用程序监听在 http://localhost:8080 上。

使用反向代理设置虚拟目录

通常情况下,建议使用反向代理服务器(如 Nginx)来处理虚拟目录的配置。以下是在 Nginx 中配置的示例:

  1. 安装和配置 Nginx

首先,确保在你的 Linux 服务器上安装了 Nginx,并且配置文件可以修改。

bash sudo apt update sudo apt install nginx

  1. 配置 Nginx 反向代理

打开 Nginx 的配置文件(通常位于 /etc/nginx/sites-available/default/etc/nginx/nginx.conf),添加一个新的 location 指令来定义虚拟目录的转发:

```nginx
server {
listen 80;
server_name yourdomain.com; # 替换成你的域名或 IP 地址

   location /jcc {
       proxy_pass http://localhost:8080; # 转发到 .NET Core 应用程序的监听地址
       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;
   }

   # 可以根据需要添加更多的 location 指令,处理其他路径的转发

   # 其他配置项...

}
```

  • location /jcc 指定了虚拟目录的路径 /jcc
  • proxy_pass 指令将请求转发到 .NET Core 应用程序的监听地址,这里是 http://localhost:8080
  • 其他 proxy_set_header 等指令用于处理请求头。

  • 重启 Nginx 服务

修改完 Nginx 配置文件后,保存并退出编辑器,然后重启 Nginx 服务使配置生效:

bash sudo systemctl restart nginx

3. 验证

通过上述步骤配置完成后,访问 http://yourdomain.com/jcc 应该能够正确地路由到你的 .NET Core 应用程序。

总结

通过使用反向代理服务器(如 Nginx)来配置虚拟目录,可以有效地将 .NET Core 应用程序运行在特定的路径下,同时保持应用程序本身的简洁性和高效性。这种方式也更符合常见的 Web 服务器配置和最佳实践。

2024-06-22