ASP.NET Core 的运行环境由新开发的 Kestrel Server 负责,IIS 退回到 HTTP 的侦听器的角色,微软也特别为了这个需求开发了 IIS Platform Handler,以处理 HTTP 与运行环境之间的信息转发工作,微软官方推荐在Linux服务器上使用Nginx,Haproxy等代理Kestrel Server。
基础环境和相关软件准备
一、CentOS7.1 64位系统(或者其他CentOS版本的64位系统)
二、XShell软件(Windows环境下的Linux终端)
三、.NetCore安装运行
1.下载安装,下载地址,https://www.microsoft.com/net/download#core
2.创建项目
3.还原依赖库&运行程序
4.发布程序&运行程序
四、Nginx
1.下载安装
2.配制环境
操作步骤
一、虚拟机安装好CentOS7.1系统,并调试好网络
二、安装好XShell软件
三、.Net Core安装运行
1、下载安装
yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
命令简单解释
1)安装必要的支持包
2)下载.Net Core安装包(有点大,需要耐心等待。)
3)解压安装包并将文件拷贝到/opt/dotnet目录
4)在/usr/local/bin目录下创建一个名为dotnet的软链接文件指向 /opt/dotnet/dotnet文件,软链接理解为快捷方式即可
2、创建.Net Core应用程序
mkdir mvctest
cd mtctest
dotnet new mvc --auth None --framework netcoreapp1.1
命令简单解释
1)创建名为mvctest的目录
2)进入该目录
3)执行dotnet new命令创建一个.Net Core MVC项目
3、还原依赖库&运行程序
dotnet restore
dotnet run
会运行在本机的localhost:5000端口,这时dotnet mvc项目已经跑起来了,虚拟机外访问还需要借助于Nginx
命令解释
1)根据mvctest项目中的project.json配置文件来还原依赖库文件(其实就是Nuget从远端服务器上下载相关依赖文件)
2)运行mvctest程序(默认访问地址为:http://localhost:5000)
4、发布程序&运行程序
第3步已经可以运行程序了,是Debug运行,发布后是Release运行,会有优化
dotnet publish -c release
dotnet run /root/web/mvc/bin/release/netcoreapp1.1/mvc.dll
四、Nginx
1、下载安装
yum install nginx 提示没有可用的软件包,因为nginx位于第三方的yum源里面,而不在centos官方yum源里面
解决方案:安装epel;
去epel官网:http://fedoraproject.org/wiki/EPEL下载;这里面东西有点多难找;
参考网址:http://www.linuxdiyf.com/linux/31548.html
2、运行Nginx
命令:systemctl start nginx 来启动nginx。
命令:systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。
3、配制环境
1)配置防火墙
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)
命令:systemctl restart firewalld(重启防火墙以使配置即时生效)
2)关闭SELinux ,使用getenforce 查询
临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
3) 修改Nginx 配制,保存
命令: vim /etc/nginx/nginx.conf
location / {
proxy_pass http://localhost:5000;
}
4) 重新加载Nginx配制文件
命令:nginx -t 测试配制文件是否正确
命令:nginx -s reload 重新加载nginx配制文件,不用重启nginx