很长一段时间以来,使用。NET只能在Windows平台上运行。目前,由于成本考虑,中国蓬勃发展的互联网公司使用大量免费的Linux平台,这使得。NET有一个独特的技巧,但不能得到一个广阔的显示空间。那个。NET平台被认为只适合开发企业内部的应用系统。
2016年6月27日,微软正式发布。NET核心1.0、ASP.NET 1.0、实体框架核心1.0,都是Windows、OS X、Linux。作为新一代的跨平台和开源。 NET平台。NET Core备受关注。有人说春天。NET程序员来了。
本文将介绍如何将ASP.NET芯的网站发布到Linux服务器上。
环境准备
本文中使用的操作系统和软件版本如下:
Visual Studio 2017企业版。NET Core 1.1 CentOS 7 X64创建和发布ASP.NET Core网站项目
1.创建项目
打开VS2017,创建一个新项目,选择ASP.NET核心web应用程序(。净核心)
选择一个网络应用程序模板。
直接用F5测试网站是否正常。
2.添加Url配置文件
默认情况下,项目使用http://localhost:5000的Url进行侦听。我们可以添加一个配置文件来随时修改Url地址。
在项目根目录下添加一个hosting.json文件,内容如下(192.168.57.7为服务器IP):
{ '服务器。网址' : ' http://192 . 168 . 57 . 733608080 ' }编辑Program.cs文件并将其修改为以下内容:
公共静态void Main(字符串[]args){ var config=new configuration builder()。SetBasePath(目录。GetCurrentDirectory())。AddJsonFile('hosting.json ',optional: true)。build();var host=new WebHostBuilder()。UseKestrel()。使用配置。UseContentRoot(目录。GetCurrentDirectory())。UseIISIntegration()。UseStartupStartup()。使用应用洞察()。build();主持人。run();}3.发布项目
右键单击项目-发布,然后选择文件夹模式。
将发布的PublishOutput文件夹压缩为zip格式,并上传到CentOS服务器。
安装。净核心
1.下载的最新版本。净核心
官网下载地址:https://www.microsoft.com/net/download/linux
我的版本是dotnet-centos-x64.1.1.1.tar.gz。
2.上传并解压缩下载的安装文件。
$ #创建dotnet文件夹$ mkdir ~/dotnet$ #将dotnet安装文件复制到$ CP dotnet-centos-x64.1.1.1.tar.gz ~/dotnet $ #提取安装文件$ tar -xzf ~/dotnet/添加与dotnet-centos-x64.1.1.1.tar.gz的软连接$ #。您可以使用$ ln-s ~/dotnet/dotnet/usr/local/bin $ #全局测试安装是否成功。如果成功,您将看到启动网站的版本号$ dotnet -version
$ #解压缩之前上传的网站压缩文件。如果没有安装解压缩,运行yum install-y unzippzip安装$ unzip ~/dotnet/publishoutput。zip $ #首先关闭防火墙$ systemctl停止防火墙d.service $ #启动网站$ cdpublishoutput $ dotnet testaspnetcoreweb.dll $如果错误未能绑定到CoreCLR,请运行yum install-y lib undle
启动成功,你可以访问http://192.168.57,已经开通了。59960 . 99999999961
安装配置守护程序(监控程序)
使用Supervisor监控核心网站在ASP.NET的应用,使网站能够持续运行,否则退出Shell后网站会停止运行。
$ # Install supervisor $ yum Install python-setuptools $ easy _ Install supervisor $ # Configure supervisor $ mkdir/etc/supervisor $ echo _ supervisor d _ conf/etc/supervisor/supervisorsor . conf修改supervisorsor . conf文件,并修改文件的最终内容如下:
创建一个目录conf.d,并在目录下创建一个文件TestAspNetCoreWeb.conf
文件内容如下:
[program : testdotnetcoreweb]command=dotnet TestAspNetCoreWeb.dll目录=~/dotnet/publishoutputautuestart=truestderr _ log file=/var/log/Testdotnetcoreweb . err . log stdout _ log file=/var/log/testdotnetcoreweb . out . log environment=aspnetcore _ environment=product user=rootstop signal=int run supervisord并检查进程是否生效。
$ super versor-c/etc/super versor/super versor。conf $ PS-ef | grep TestDotNetCoreWeb(9506 . 163.com)
配置文件如有修改,使用命令主管重新加载重新加载。
安装配置Nginx
访问http://dl.fedoraproject.org/pub/
下载合适版本的epel,并上传到服务器。
如:http://dl。fedoraproject。org/pub/epel/7/x86 _ 64/e/epel-release-7-9。没有拱门。每分钟转数
$ #安装epel $ rpm-IVH epel-发布-7-9。没有拱门。rpm $ #安装nginx$ yum安装nginx$ #启动nginx$ systemctl启动nginx$ #将nginx添加至SELinux的白名单,否则会报502错误$ yum install policy coreutils-python $ cat/var/log/audit/audit。日志| grep nginx | grep拒绝|审核2允许-M mynginx $ SEM模块-I mynginx。PP $ #测试nginx是否正常$ curl http://127.0.0.1修改配置文件/etc/nginx/nginx.conf中计算机网络服务器部分为以下内容,配置Nginx侦听之前的网站。
服务器{听80位置/proxy _ http _ version 1.1 proxy _ set _ header Upgrade $ http _ Upgrade;代理集头连接保持活动;proxy _ set _ header Host $ hostproxy _ cache _ bypass $ http _ upgrade;} error _ page 404/404。html位置=/40x。html { } error _ page 500 502 503 504/50x。html位置=/50x。html { } $ #修改完后重新加载配置文件$ nginx -s重新加载配置完成后即可使用http://192.168.57.7访问网站。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。