手机版

向Ubuntu服务器详细解释ASP.NET核心部署项目

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

在前一篇文章中成功安装了Ubuntu Server 16.10的基础上,继续我们在ASP中的Core项目的部署之旅。NET!

只是对于这些年一直和Windows打交道的我来说,第一次用Linux有点难。

但是,对于的跨平台特性。NET Core,即使坑再多,你还是要咬紧牙关。

否则,有人会用惊讶的眼神问你:是你的。NET Core项目还部署在Windows上?

二话没说,祝你十步内部署成功!( ̄︶ ̄)[GO!]

1.安装。核心软件开发工具包

依次输入以下命令以完成安装。如果中间有失败,请尝试几次。

sudo sh-c ' echo ' deb[arch=amd64]https://apt-mo.trafficmanager.net/repos/dotnet-release/yakketty main '/etc/apt/sources . list . d/在安装了dotnetdev . list ' sudoapt-keyadv-keyserver hkp ://keyserver . Ubuntu.com :80-recv-key 417 a 0893 sudoapt-get update sudoapt-get install dotnet-dev-1 . 0 . 1后,尝试执行dotnet命令,出现以下内容

第二,试刀

1、创建一个名为test的文件夹,然后切换它

Mkdir testcd test2。初始化命令行界面配置

dotnet new

3.创建一个MVC项目

Dotnet新mvc4,构建项目并运行它

dotnet restorotnet run

5.如果监控成功,说明没问题。接下来,输入Program.cs文件并将其修改为以下内容,80端口监视器中的所有网络适配器

1)、vi Program.cs //打开Program.cs文件

2)、i //进入编辑模式

3) Esc键退出编辑模式

4): wq //保存并退出

6.安装反向代理nginx并启动它。当然,阿帕奇也是必须的。

sudo apt-get install nginx sudo service ngnix start然后访问服务器的地址。如果出现以下页面,说明安装成功

7.安装后,进入以下目录,打开默认文件并将其修改为以下内容

CD/etc/nginx/sites-available sudo vim默认值

顺便记录几个常用的编辑命令

打开或新建一个Program.cs文件i //进入编辑模式Esc键//退出编辑模式yy //复制光标行5yy //复制光标行5行p //粘贴dd //删除光标行5dd //删除光标行5行u //取消操作:q!//不保存退出:wq保存并退出8。重新启动Nginx以应用配置

Sudo nginx -tsudo nginx -s再装9。下一步就是见证奇迹。再次运行我们的测试项目,然后打开原生浏览器,输入:http://192.168.1.104(如果不知道自己的ubuntu服务器地址,输入ifconfig命令查看)。如果出现以下屏幕,则表明配置已成功。服务器不再是IIS,而是ubuntu上的nginx,版本1.10.1

小贴士:如果不成功,不要灰心!试着用下面的命令更新系统,或者卸载nginx再试一次,相信黎明就要到了!

sudo apt-获取更新sudo apt-获取升级sudo apt-获取dist-升级sudo重启III。配置守护进程管理器

到目前为止,应用程序一直是我们自己手动运行的,不能用Ctrl C关闭退出,否则你的网站将无法访问!因此,我们需要有一个类似监视器的角色来确保ASP.NET核心流程的正常运行,因此Supervisor将是我们的首选。

1.安装主管

Sudo apt-get安装supervisor2,发布上面mvc的测试项目,并记录你的发布路径

网络出版

3.发布成功后,记得切换到发布目录执行dotnet running命令,然后重复上面的第9步,看看能否正常访问。如果没有问题,我们将进行下一步

4.切换到var路径,创建一个netcore文件夹,然后在它下面创建一个test-publish文件夹,然后将上面发布的所有文件复制到这里

CD/varsudo mkdir netcorecd netcoresudo mkdir test-publish CD test-publish sudo CP-a/home/jack/test/bin/Debug/netcoreapp 1.1/publish/*/var/netcore/test-publish ls

5.创建test.conf的supervisor配置文件,并添加以下内容(注意不要握手写错)

6.重启主管应用配置!然后试着用这台机器访问ubuntu服务器的IP,看看网站是否如你所愿地显示在你面前!如果与上面的第9步一致,那么整个部署过程就暂时告一段落了,这样即使重启服务器,网站仍然可以访问。来到这里我终于松了一口气。

Sudo服务主管重启IV。先进的

接下来,我将在IIS上部署我以前的项目:“ASP。NET Core:用Dapper和SwaggerUI丰富你的系统框架”到Ubuntu Server,其中我们需要准备一个远程登录工具:Putty,用来将我们的原生发布文件传输到服务器,同时可以像在Ubuntu中一样执行一些命令操作。

1.在Ubuntu Server上安装OpenSSH Server并启动SSH服务(默认端口为22)

sudo apt-get install OpenSSH-server sudo/etc/init . d/SSH start 2,启用防火墙配置ufw(默认情况下,它已准备好使用和安全),然后打开SSH服务的端口22。

默认拒绝允许允许允许ssh

注意:第一个命令表示默认情况下所有端口都是关闭的,除非它们被指定为打开的。至于红盒子里的,不用我过多解释(笑而不语~)。

3.打开Putty,输入ubuntu Server的IP地址,端口为22,连接类型为SSH。您可以保存这个配置并将其命名为Ubuntu。下次双击打开就行了,挺方便的。

4.出现以下提示时,选择“是”

5.然后输入登录服务器的用户名和密码。如果没有问题,您将看到以下屏幕

5.试刀:打开windows的命令提示窗口,输入以下命令,意思是将一个test.txt(E文件(E盘下)复制到ubuntu服务器上的test文件夹中

[email protected]: test

然后切换到Putty进行查看

6.重新发布我们的项目,并将ubuntu.16.10-x64指定为运行时。如果您需要更多信息,请点击这里查看。

复制代码如下: dotnetpublish-框架netcore app 1.1-运行时Ubuntu . 16.10-x64-输出' e : \ publish \ light . API-Ubuntu '-配置版本

不幸的是,这里有一个很大的错误:“project.assets.jsondon没有目标”。netcore app,版本=v1.1/Ubuntu.16.10-x64 '”。在线检查后,发现项目文件csproj中没有这样的依赖关系。添加后,重新运行release命令。如果最后一个屏幕出现,说明你成功了!

运行时标识符

同时,将我们的监听端口设置为6000,否则不会启动,因为5000端口已经被测试项测试占用了。UseIISIntegration方法可以删除,因为我们想发布到Ubuntu服务器,我们不需要IIS,但是这样你的机器将无法访问。

7.最重要的部分:使用PSFTP,主要命令是打开和放,以及复制光。我们刚刚发布到Light的Api项目。Api-Publish,你会看到很多拷贝记录

8.复制完成后,切换到服务器的这个目录。如果能启动,就说明没问题

9.不用说,Ctrl Art F2切换到第二个管理页面,将nginx的监听端口改为6000,重新启动nginx

10.屏住呼吸,在本地浏览器输入服务器地址:“http://192 . 168 . 1 . 105/swag/ui”。如果你能正常访问并请求数据,你就成功了!如果发现服务器不可用,多半是防火墙打开,数据库无法连接造成的,因为此时无法ping通主机,直接去控制面板关闭防火墙就可以了!最终的渲染,ubuntu上的nginx,就是一个有力的证明

第四,写在最后

也许细心的人已经发现,我其实已经有了光之守护进程的最后一步。没有配置的Api,最后就留给大家了。我不告诉你,只参考上面第五步!希望这篇文章能对那些刚刚接触到ASP.NET Core在Linux中部署的同学有所帮助。如果你对这篇文章有任何疑问或不清楚,请讨论。也希望大家多多支持我们。

版权声明:向Ubuntu服务器详细解释ASP.NET核心部署项目是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。