Razor Page部署到Debian 12 ,宝塔面板中,使用Nginx做反向代理,然后程序启动的时候监听localhost:5000端口,外网使用3000端口访问。首先是在Debian12系统上面,按照微软官方文档,安装好.net core 8.0 LTS版本的稳定版本的cli SDK之后,publish 项目的时候可以选择potable方式,vs2022的设置如下:
下面是publish之后的项目打包文件:
整个打包文件压缩为zip压缩包,通过宝塔面板的“文件”菜单,上传到根目录www目录中,创建一个你自己的文件夹,然后上传到这个文件夹中,我这里设置的是ICS-Print-Debug文件夹,上传压缩包zip之后解压到当前目录。
默认上传到www文件夹下面的文件,所属的权限组是www,用户组也是www。然后配置这个程序的启动项,.net core项目选择“其他项目”,在项目信息页面中进行启动配置,如下:
项目执行文件:/www/ICS-Print-Debug/HK-ICS-Print-Debug.dll
项目名称:ICS_Print
项目端口:5000
执行命令:dotnet /www/ICS-Print-Debug/HK-ICS-Print-Debug.dll
运行用户:www
是否开机启动:是
宝塔面板这里的“项目名称”只支持下划线,单横线这种是不支持的,注意。
运行用户这里,要和你的程序所属的权限组用户名一致,这里默认是www这个用户。因为我们是吧程序文件放到了根目录的www用户文件夹下面,所以.net core默认的静态根目录是寻找当权user所在的wwwroot目录,所以.net core的静态根目录就是/www/wwwroot/这个文件夹。如果这个不一致就会出现wwwroot里面js和css文件报错,出现http请求404错误,比如你直接在Linux命令行以root用户运行这个程序的时候,会发现前端的js,css引用路径找不到报404错误,因为root用户,默认的.net core静态文件路径是/root/wwwroot/
.Nginx的反向代理配置比较简单,域名管理这里,只需要配置服务器的对外公网IP地址加上端口即可。这里我配置的是3000端口号,指向宿主机的localhost:5000端口。这里我的应用监听的实际是8086,不知为何宝塔这里默认启动进程给监听了5000端口(这个有待之后处理)。
Nginx对外的这个代理端口是3000配置完之后,需要在宝塔面板的“安全”菜单里面,把防火墙对于3000端口开启,我这里使用的是新加坡的服务器,Vulrt供应商的,自身没有带防火墙,使用的是宝塔面板带的防火墙。如果你是其他供应商,可能需要额外在供应商后台面板那里对防火墙端口进行设置。
文档信息
- 本文作者:hillcat
- 本文链接:https://cs-cn.top/2024/11/10/RazorPagePublishToLinux/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)