手机版

Asp.Net核心发布部署详解(MacOS Linux Nginx)

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

上一篇文章主要介绍了Dotnet Core Run命令,本文主要讲解了如何在Linux中发布和部署Asp.Net核心程序。

目录

创建一个新的WebApp项目,并将其发布到Linux。Mac OS使用Nginx进行反向代理来创建一个新的WebApp项目

在Asp.Net核心项目中,我们使用dotnet new -t WebApp命令并创建一个新的空Web应用程序。

以下是我在Mac上的截图:

主要使用以下命令:

mkdir HelloWebApp命令是创建一个名为HelloWebApp的文件夹。

命令dotnet new -t Web是使用Web模板创建一个新的Web app的Mvc应用程序。

创建新应用程序后,使用dotnet restore和dotnet run命令来测试我们的应用程序。

您可以看到它已经成功运行。

让我们打开浏览器,输入http://localhost:5000查看效果。

在ps: Safari下,浏览器的地址栏看不到端口号,但实际上是5000个端口。

发布到Linux、Mac OS

如果我们发布应用程序,我们需要使用dotnet publish命令。通过使用- help参数,我们可以看到一些可以使用的命令参数。

FRAMEWORK Target framework要编译的for-r |-RUNTIME _ IDENTIFIER要发布的Target RUNTIME for-b |-build-base-PATH OUTPUT _ DIR要在其中放置临时输出的目录OUTPUT _ PATH要在其中发布app-VERSION-后缀VERSION_SUFFIX定义在project . JSON-c |-CONFIGURATION CONFIGURATION要在其中构建-原生子目录的配置临时机制包括来自原生资产的子目录的依赖包在输出-no-build中不要在发布前构建项目。我们直接运行dotnet publish并使用默认的发布路径。当我们看到发布的1/1项目成功时,说明已经发布成功。然后在bin文件夹下的Debug文件夹下输入netcoreapp1.0文件夹,然后会看到一个发布文件夹。这是默认发布生成的文件夹,我们可以在其中看到程序所依赖的所有程序集文件。

发布后需要解释发布文件夹中的子文件夹。

appsettiong.json应用程序的配置文件引用应用程序引用的。net fx系统汇编运行时运行时环境。可以看到里面的文件夹包含win7、linxu、mac os等。这表明我们的应用程序是跨平台的。文件夹视图存储我们mvc的视图文件。Wwwroot文件夹存储js库、css样式表、图片等。然后我们将工作目录切换到发布的发布文件夹。使用dotnet HelloWebApp.dll测试发布的程序是否正常运行。

使用Nginx进行反向代理

Mac OS Linux(Ubuntu)注意事项反向代理,就是把我们的一部分应用路径给Nginx进行处理,比如静态文件、图片等等。另一部分动态交给红隼处理。这样可以减轻我们后端红隼的压力,并且可以在Nginx中配置负载均衡。

另一个重要的优点是,Web中的缓存将在代理服务器步骤中处理。请看下图:

至于如何添加一个代理服务器可以识别的缓存,可以稍后关注我的博文。

mac 操作系统

安装dotnet环境见https://www.microsoft.com/net/core#macos官网。

1.在mac中打开命令行,输入brew install nginx,首先安装nginx。

2.安装完成后,输入nginx -v查看安装是否成功。根据nginx版本: nginx/1.10.1,安装已经成功。

3.配置nginx代理。

安装nginx后,默认配置文件路径在/usr/local/etc/nginx文件夹中。在这个文件夹中,找到nginx.conf配置文件,用Visual Studio Code打开,在Server节点中,找到监听端口80的位置节点,修改配置如下:

location/{ proxy _ pass http://localhost :5000;proxy _ http _ version 1.1proxy _ set _ header Upgrade $ http _ Upgrade;代理集头连接保持活动;proxy _ set _ header Host $ hostproxy _ cache _ bypass $ http _ upgrade;}保存并退出。然后使用sudo nginx -s reload命令重新加载配置。

然后我们打开浏览器,输入http://localhost,发现已经通过nginx访问了我们的网站。

在ps: Safari下,浏览器的地址栏看不到端口号,其实是端口80。

Linux(Ubuntu)

安装dotnet环境见https://www.microsoft.com/net/core#ubuntu官网。

首先,在Ubuntu中创建新文件夹,并将我们的发布文件夹复制到Liunx。然后测试它是否能正常运行。

1.在linux(Ubuntu)中打开一个新的命令行窗口,进入apt-get install nginx,先安装nginx。

2.安装完成后,输入nginx -v查看安装是否成功。nginx版本: nginx/1.4.6的显示表明安装成功。

[email protected]: ~ $ sudonginx-vnginx version : nginx/1 . 4 . 6(Ubuntu)要测试nginx是否运行成功,请打开浏览器,输入http://localhost,查看是否显示以下界面。

3.配置nginx代理。

安装nginx后,默认配置文件路径在/etc/nginx/sites-available/default文件中。将工作目录更改为/etc/nginx/sites-available/并使用sudo gedit default命令打开默认文件。在服务器节点中,找到监听端口80的位置节点,并按如下方式修改内容:

服务器{ listen 80# root/usr/share/nginx/html;# index.htmlindex.htm指数;#从http://localhost/server _ name localhost访问网站;location/{ proxy _ pass http://localhost :5000;proxy _ http _ version 1.1proxy _ set _ header Upgrade $ http _ Upgrade;代理集头连接保持活动;proxy _ set _ header Host $ hostproxy _ cache _ bypass $ http _ upgrade;}}保存并退出。然后使用sudo nginx -s reload命令重新加载配置。

然后我们打开浏览器,输入http://localhost,发现已经通过nginx访问了我们的网站。

需要注意的事项

1.使用nginx代理访问站点时,必须打开命令dotnet run HelloWebApp.dll的命令行窗口。

2.您可以使用以下命令在后台进程中运行命令行。

nohup dotnet HelloWebApp.dll,此时可以关闭命令行窗口。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:Asp.Net核心发布部署详解(MacOS Linux Nginx)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。