本文将详细介绍如何在Linux系统上配置.NET Core环境,并成功部署.NET Core后端服务
无论你是初学者还是有一定经验的开发者,都能从本文中获得有价值的参考信息
一、前期准备 在开始配置.NET Core之前,我们需要确保以下几点: 1.选择合适的Linux发行版: - 对于初学者,推荐选择CentOS,因为它社区支持广泛,文档齐全
- 对于经验丰富的用户,可以选择Ubuntu或Debian,这些发行版在软件包管理和更新方面更加便捷
2.安装必要的工具: -XShell:用于连接远程Linux服务器
可以从【XShell官方网站】(https://www.netsarang.com/zh/xshell-download/)下载
-Xftp:用于文件传输
可以从【Xftp官方网站】(https://www.netsarang.com/zh/xftp-download/)下载
-Git(可选):用于代码版本控制和自动化部署
二、安装.NET Core SDK与运行时 在Linux上部署.NET Core应用,首先需要安装.NET Core SDK和运行时
以下是详细的步骤: 1.添加Microsoft包签名密钥和包存储库: - 对于CentOS: ```bash sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm ``` - 对于Ubuntu: ```bash wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb ``` 2.更新软件包列表并安装.NET Core SDK: - 对于CentOS: ```bash sudo yum install -y dotnet-sdk-5.0 ``` - 对于Ubuntu: ```bash sudo apt-get update sudo apt-get install -y apt-transport-https sudo apt-get update sudo apt-get install -y dotnet-sdk-5.0 ``` 3.安装.NET Core运行时(如果需要): - 如果已经安装了.NET Core SDK,则无需安装相应的运行时,因为SDK包含了运行时
但如果只需要运行时,可以单独安装: ```bash sudo yum install -y aspnetcore-runtime-5.0 CentOS sudo apt-get install -y aspnetcore-runtime-5.0 Ubuntu ``` 4.验证安装: - 通过运行`dotnet --version`命令,查看安装的.NET Core版本
三、发布.NET Core应用 在本地开发环境中,我们需要将.NET Core应用发布为可部署的包
以下是发布步骤: 1.在Visual Studio中发布: - 右键点击项目,选择“发布”
- 在发布配置中,选择“框架依赖部署”模式(因为我们已经在服务器上安装了.NET Core环境)
- 指定发布目录,点击“发布”
2.使用命令行发布: - 打开命令行工具,导航到项目目录
-运行`dotnet publish -o ./publish`命令,将应用发布到`./publish`目录
四、将发布文件传输到Linux服务器 使用Xftp将发布后的文件传输到Linux服务器
以下是详细步骤: 1.打开Xftp: - 在XShell中,点击“新建文件传输”按钮,打开Xftp
2.传输文件: - 在Xftp窗口中,左侧是本地文件,右侧是服务器文件
- 选择发布后的文件,点击箭头按钮,将文件传输到服务器指定的文件夹上
3.设置文件权限: - 在命令行中,使用`chmod`命令对启动文件授权
例如,将权限设置为755: ```bash chmod 755 /path/to/your/app/YourApp.dll ``` 五、启动.NET Core服务 有多种方式可以启动.NET Core服务,以下是几种常见的方法: 1.直接运行: -使用`cd`命令切换到项目所在的路径
-运行`dotnet YourApp.dll`命令启动服务
- 这种方式有一个缺点:关闭SSH连接后,服务也会关闭
2.使用守护进程启动: -使用`nohup`命令让服务在后台运行: ```bash nohup dotnet YourApp.dll & ``` - 或者使用`systemd`来管理服务,创建一个`.service`文件: ```ini 【Unit】 Description=Project running on CentOS 【Service】 WorkingDirectory=/path/to/your/app Type=simple User=root Group=root ExecStart=/usr/share/dotnet/dotnet /path/to/your/app/YourApp.dll Restart=always RestartSec=10 SyslogIdentifier=dotnet-example Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false 【Install】 ``` - 将文件保存为`.service`文件,例如`YourApp.service`,然后传输到服务器`/etc/systemd/system/`路径下
- 使用以下命令来管理服务: ```bash systemctl start YourApp.service 启动服务 systemctl stop YourApp.service 停止服务 systemctl status YourApp.service 查看服务状态 ``` 六、配置防火墙和反向代理 1.配置防火墙: - 确保服务器防火墙允许访问你的应用端口
例如,如果你的应用运行在8888端口,需要确保防火墙允许该端口的访问
- 查看防火墙状态: ```bash systemctl status firewalld ``` - 临时关闭防火墙: ```bash systemctl stop firewalld ``` - 永久关闭防火墙(不推荐,仅用于测试): ```bash systemctl disable firewalld ``` 2.配置反向代理: - 为了使你的应用可以通过域名访问,可以使用Nginx设置反向代理
- 在Nginx配置文件中添加以下配置: ```nginx server{