现在.NET Core这么火,但是很多朋友都只在window中使用过,不知道怎么在Linux中部署.NET Core,今天VPS234就手把手教大家在Linux 中部署.NET Core,大家照着示例做保证可以成功。下面我们就开始就讲解怎样在Linux 中部署.NET Core项目。
首先此次我们使用的Linux 版本是CentOS 7(注意CentOS 6不能运行.NET Core),使用的是Xshell工具连接Linux,下面我们就开始。
Linux 安装.NET Core运行环境
根据官方的说法,在安装DotNetCore环境之前需要注册Microsoft Key以及Product Repository,并且还需要安装一些依赖,这一步每台机器只需要运行一次,具体命令如下:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
执行效果如下所示:
先用下面的命令更新系统:
sudo yum update
效果如下所示:
再用下面的命令安装 .NET Core 2.2
sudo yum install dotnet-sdk-2.2
效果如下所示:
然后测试是否安装成功,输入下面的命令:
dotnet --version
可以看到成功后效果如下所示:
新建.NET Core项目
.NET Core环境以及搭建好了,然后我们搭建一个.NET Core项目来测试一下。我们用Visual Studio搭建一个最简单的Web API项目,如下所示:
新建一个.NET Core Web项目
选择API项目,先不勾选Https选项,如下图所示:
可以看见,默认项目是已经创建好的Web API
然后我们就需要将项目发布到Linux服务器上,这里我们选择通过FTP发布(Linux安装FTP的方法可以参考我们之前的文章:Linux CentOS 7 搭建FTP新手教程)。
在项目上右键,然后点击“发布:
选择FPT发布方式:
设置好FTP连接信息
点击保存开始发布
发布完成如下所示:
然后我们再Linux服务器上,查看FTP的根目录,可以看到我们刚刚发布的项目文件
这时执行Dotnet Core命令,运行项目即可,使用下面的命令(命令格式为 dotnet+项目文件启动dll路径"):
dotnet VPS234-CoreTest.dll
运行效果如下图所示:
可以看到运行的端口是5000
但是这个时候我们还不能从外网访问到,Nginx来转发才能访问。
配置Nginx转发.NET Core 服务
先执行下载工具wget
yum install wget
下载nginx包:
wget -c https://nginx.org/download/nginx-1.11.6.tar.gz
输入下面的命令解压压缩包
tar -zxvf nginx-1.11.6.tar.gz
在执行命令前我们需要添加依赖库,继续输入下面的命令
安装gcc 环境
yum install gcc-c++
安装PCRE依赖库
yum install -y pcre pcre-devel
安装zlib 依赖库
yum install -y zlib zlib-devel
安装OpenSSL安全套接字层密码库
yum install -y openssl openssl-devel
进入Nginx安装目录(cd nginx-1.11.6 )执行配置命令
./configure
执行安装命令
make install
进入配置文件文件夹
cd /usr/local/nginx/conf
编辑nginx.conf配置文件
vi nginx.conf
编辑的内容如下所示,将server节点修改如下所示:
server {
listen 80; #nginx服务器的代理端口
server_name _; #这里也可以填写你的域名
location / {
proxy_pass http://localhost:5000; #需要反向代理的IP地址+端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
修改如下所示:
然后进入Nginx目录
cd /usr/local/nginx/sbin/
然后执行下面的命令重新启动Nginx
./nginx -s reload
如果重启出现:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory),可以通过执行下面的命令解决
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
然后再重新启动Nginx
./nginx -s reload
启动.NET Core 项目测试
这个我们再吧.NET Core项目启动起来,进入你的.NET Core项目目录下,执行.NET Core启动命令(上面我们已经讲了怎么启动.NET Core项目),然后这个时候通过你的服务器IP来访问,在浏览器中输入地址:http://你的服务器/values/5
然后可以看到出现"Value"的值,如下所示:
Linux服务器部署.NET Core项目总结
以上就是Linux服务器部署.NET Core的示例教程,我们使用的是Linux CentOS 7系统,其他Linux版本基本是一样的逻辑,希望通过本教程可以帮助到需要Linux搭建.NET Core项目的朋友。