日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

發(fā)布時(shí)間:2023/12/4 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.Net Core 发布和部署( MacOS + Linux + Nginx ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在Linux中,對(duì) Asp.Net Core 的程序進(jìn)行發(fā)布和部署。

有關(guān)如何在 Jexus 中進(jìn)行部署,請(qǐng)參見(jiàn)本人的另一篇文章:
http://www.cnblogs.com/savorboard/p/dot-net-linux-jexus.html

目錄

  • 新建一個(gè) WebApp 項(xiàng)目

  • 發(fā)布到 Linux,Mac OS

  • 使用 Nginx 進(jìn)行反向代理

新建一個(gè) WebApp 項(xiàng)目

在 Asp.Net Core 項(xiàng)目中,我們使用?dotnet new -t WebApp?命令和創(chuàng)建一個(gè)新的空的 Web 應(yīng)用程序。

以下是我在 Mac 中的截圖:

主要是用以下幾個(gè)命令:

mkdir HelloWebApp?這個(gè)命令是創(chuàng)建一個(gè)名為 HelloWebApp 的文件夾。

dotnet new -t Web?這個(gè)命令是使用 Web 模板來(lái)新建一個(gè) WebApp 的 Mvc 應(yīng)用程序。

新建了應(yīng)用程序之后,使用dotnet restore?和?dotnet run?命令來(lái)測(cè)試一下我們的應(yīng)用程序。

可以看到已經(jīng)成功運(yùn)行了。
我們打開(kāi)瀏覽器輸入?http://localhost:5000,來(lái)看一下效果。

ps: Safari 下面,瀏覽器地址欄看不到端口號(hào),實(shí)際上是5000端口。

發(fā)布到 Linux,Mac OS

如果發(fā)布應(yīng)用程序,我們需要使用?dotnet publish命令,通過(guò)使用?--help?參數(shù)可以看到一些可以使用的命令參數(shù)。

?-f|--framework <FRAMEWORK> ? ? ? ? ?Target framework to compile for-r|--runtime <RUNTIME_IDENTIFIER> ? Target runtime to publish for-b|--build-base-path <OUTPUT_DIR> ? Directory in which to place temporary outputs-o|--output <OUTPUT_PATH> ? ? ? ? ? Path in which to publish the app--version-suffix <VERSION_SUFFIX> ? Defines what `*` should be replaced with in version field in project.json-c|--configuration <CONFIGURATION> ?Configuration under which to build--native-subdirectory ? ? ? ? ? ? ? Temporary mechanism to include subdirectories from native assets of dependency packages in output--no-build ? ? ? ? ? ? ? ? ? ? ? ? ?Do not build projects before publishing

我們直接運(yùn)行dotnet publish?使用默認(rèn)的發(fā)布路徑,當(dāng)看到Published 1/1 projects successfully的時(shí)候,說(shuō)明已經(jīng)發(fā)布成功了。 接著進(jìn)入到 bin 文件夾下的Debug 文件夾下的netcoreapp1.0 文件夾,然后會(huì)看到有一個(gè) publish 的文件夾。這就是默認(rèn)發(fā)布生成的文件夾,在這個(gè)文件夾中可以看到我們程序所有依賴的程序集文件。

發(fā)布之后 publish 文件夾里面的子文件夾有必要說(shuō)明一下。

appsettiong.json ?應(yīng)用程序的配置文件refs 應(yīng)用程序引用的.net fx系統(tǒng)程序集runtimes 運(yùn)行時(shí)環(huán)境,可以看到里面的文件夾包含 win7linxumac os 等,說(shuō)明我們這個(gè)應(yīng)用程序是跨平臺(tái)的。views 這個(gè)文件夾存放的就是我們的 mvc 的視圖文件。wwwroot 文件夾,存放的是前端使用的 js 庫(kù),css 樣式表,和圖片等。

然后我們把工作目錄切換到發(fā)布的 publish 文件夾。使用dotnet HelloWebApp.dll測(cè)試發(fā)布過(guò)后的程序是否運(yùn)行正常。

使用 Nginx 進(jìn)行反向代理

  • Mac OS

  • Linux(Ubuntu)

  • 注意事項(xiàng)

反向代理,即把我們應(yīng)用程序的一部分路徑交給 Nginx 去處理,比如靜態(tài)文件,圖片等。另外一部分動(dòng)態(tài)的交給 Kertrel 來(lái)處理。這樣可以降低我們的后端 Kertrel 的壓力,以及可以在 Nginx 配置負(fù)載均衡等。

還有一個(gè)很重要的優(yōu)勢(shì)就是 Web 中的緩存,會(huì)在代理服務(wù)器這一步來(lái)處理。大家看下面這個(gè)圖:

至于怎么樣添加代理服務(wù)器可以識(shí)別到的緩存,可以關(guān)注我后面發(fā)表的博客文章。

Mac OS

安裝 dotnet 環(huán)境參見(jiàn)官方網(wǎng)站?https://www.microsoft.com/net/core#macos。

1、 在 mac 中打開(kāi)命令行,輸入?brew install nginx?首先安裝 nginx。
2、 安裝完成之后,輸入?nginx -v查看是否安裝成功。顯示nginx version: nginx/1.10.1表示安裝已經(jīng)成功。
3、配置 nginx 代理。

安裝完 nginx 之后,默認(rèn)的配置文件路徑在?/usr/local/etc/nginx?文件夾中。在這個(gè)文件夾中找到nginx.conf 配置文件,使用 Visual Studio Code 打開(kāi),在?Server?節(jié)點(diǎn)中,找到監(jiān)聽(tīng) 80端口的location 節(jié)點(diǎn),修改配置為如下:

location / { ? ? ?proxy_pass http://localhost:5000; ? ? ?proxy_http_version 1.1; ? ? ?proxy_set_header Upgrade $http_upgrade; ? ? ?proxy_set_header Connection keep-alive; ? ? ?proxy_set_header Host $host; ? ? ?proxy_cache_bypass $http_upgrade;}

保存并退出。 然后使用sudo nginx -s reload命令來(lái)重新加載配置。
然后我們打開(kāi)瀏覽器 輸入http://localhost,發(fā)現(xiàn)此時(shí)已經(jīng)通過(guò) nginx 來(lái)訪問(wèn)我們的站點(diǎn)了。
ps: Safari 下面,瀏覽器地址欄看不到端口號(hào),實(shí)際上是80端口。

Linux(Ubuntu)

安裝 dotnet 環(huán)境參見(jiàn)官方網(wǎng)站?https://www.microsoft.com/net/core#ubuntu。

首先在Ubuntu 中新建一個(gè)文件夾,把我們發(fā)布的 publish 文件夾拷貝到 Liunx 中。然后測(cè)試一下是否可以正常運(yùn)行。

1、 在 linux(Ubuntu) 中新開(kāi)一個(gè)命令行窗口,輸入?apt-get install nginx?首先安裝 nginx。
2、 安裝完成之后,輸入?nginx -v查看是否安裝成功。顯示nginx version: nginx/1.4.6表示安裝已經(jīng)成功。

yxd@ubuntu:~$ sudo nginx -v nginx version: nginx/1.4.6 (Ubuntu)

測(cè)試 nginx 是否運(yùn)行成功,打開(kāi)瀏覽器,輸入?http://localhost?查看是否顯示如下界面。

3、配置 nginx 代理。

安裝完 nginx 之后,默認(rèn)的配置文件路徑在?/etc/nginx/sites-available/default?文件中。切換工作目錄到/etc/nginx/sites-available/,使用sudo gedit default命令打開(kāi) default 文件。 在?Server?節(jié)點(diǎn)中,找到監(jiān)聽(tīng) 80端口的location 節(jié)點(diǎn),修改內(nèi)容為如下:

server { ? ?listen 80; ? ?#root /usr/share/nginx/html;#index index.html index.htm;# Make site accessible from http://localhost/server_name localhost; ? ?location / { ? ? ? ?proxy_pass http://localhost:5000; ? ? ? ?proxy_http_version 1.1; ? ? ? ?proxy_set_header Upgrade $http_upgrade; ? ? ? ?proxy_set_header Connection keep-alive; ? ? ? ?proxy_set_header Host $host; ? ? ? ?proxy_cache_bypass $http_upgrade;} }

保存并退出。 然后使用sudo nginx -s reload命令來(lái)重新加載配置。
然后我們打開(kāi)瀏覽器 輸入http://localhost,發(fā)現(xiàn)此時(shí)已經(jīng)通過(guò) nginx 來(lái)訪問(wèn)我們的站點(diǎn)了。

注意事項(xiàng)

1、在使用 nginx 代理訪問(wèn)站點(diǎn)的時(shí)候, 保持命令dotnet run HelloWebApp.dll的命令行窗口必須開(kāi)啟。

2、可以使用下面的命令來(lái)讓一個(gè)命令行運(yùn)行在后臺(tái)進(jìn)程中。

nohup dotnet HelloWebApp.dll &

這個(gè)時(shí)候你就可以把命令行窗口關(guān)掉了。

下一篇將講解如何在 Linux 中使用 Docker 進(jìn)行部署,以及如何脫離命令行宿主給我們的dotnet程序創(chuàng)建一個(gè)守護(hù)進(jìn)程,及宕機(jī)失敗自動(dòng)重啟等等。。。 請(qǐng)持續(xù)關(guān)注。


相關(guān)文章:

  • ASP.NET Core 1.0 入門——了解一個(gè)空項(xiàng)目

  • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

  • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡(jiǎn)介

  • 云服務(wù)器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)

  • 使用VS Code開(kāi)發(fā)ASP.NET Core 應(yīng)用程序

  • dotnet run是如何啟動(dòng)asp.net core站點(diǎn)的

  • ASP.NET Core提供模塊化Middleware組件

  • “dotnet restore"和"dotnet run"都做了些什么?

  • 探秘 dotnet run 如何運(yùn)行 .NET Core 應(yīng)用程序

  • .NET Portability Analyzer 已開(kāi)源

  • ASP.NET Core的配置(1):讀取配置信息

  • ASP.NET Core的配置(2):配置模型詳解

  • .NET Core 1.0 RC2 歷險(xiǎn)之旅

  • 使用VS Code開(kāi)發(fā) 調(diào)試.NET Core 應(yīng)用程序

  • 讓我們Core在一起:ASP.NET Core & .NET Core

  • .NET Core VS Code 環(huán)境配置

  • 官方博客明確了 .NET Core RC2/RTM 時(shí)間表

  • .NET Core全新的配置管理[共9篇]

  • 利用記事本創(chuàng)建一個(gè)ASP.NET Core RC2 MVC應(yīng)用

  • 微軟.NET 正式劈腿成功,橫跨所有平臺(tái)

  • .NET Core 1.0 CentOS7 嘗試

  • 解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1

  • [.NET Core].NET Core R2安裝及示例教程

  • ASP.NET Core 開(kāi)發(fā)-中間件(Middleware)

  • 結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境

  • 通過(guò)Jexus 部署 dotnetcore版本MusicStore 示例程序

  • ASP.NET Core 中文文檔 第一章 入門

  • 用 Visual Studio Code 在 macOS 上創(chuàng)建首個(gè) ASP.NET Core 應(yīng)用程序

  • 用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個(gè) Web API

  • 用 Visual Studio 發(fā)布一個(gè) Azure 云 Web 應(yīng)用程序

  • ASP.NET Core MVC 與 Visual Studio 入門

  • 第二章指南(4.2)添加 Controller

  • DotNet Core 介紹

  • asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)

  • 教你實(shí)踐ASP.NET Core Authorization(免看文檔教程)

  • asp.net core 使用 Redis 和 Protobuf 進(jìn)行 Session 緩存

  • asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)

  • 第二章 指南(4.3)添加 View

  • dotnet core開(kāi)發(fā)體驗(yàn)之開(kāi)始MVC

  • dotnet core 開(kāi)發(fā)體驗(yàn)之Routing

  • 聊聊ASP.NET Core默認(rèn)提供的這個(gè)跨平臺(tái)的服務(wù)器——KestrelServer

  • 簡(jiǎn)析.NET Core 以及與 .NET Framework的關(guān)系

  • .NET Core 使用Dapper 操作MySQL

  • 使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺(tái)程序

  • 簡(jiǎn)析 .NET Core 構(gòu)成體系

  • .NET Core也可以使用MongoDB了

  • .NET Core & ASP.NET Core 1.0在Redhat峰會(huì)上正式發(fā)布

  • .NET Core:面向未來(lái)的開(kāi)源跨平臺(tái)開(kāi)發(fā)技術(shù)

  • 微軟說(shuō)它深愛(ài)著Linux,現(xiàn)在它用行動(dòng)證明了

  • 移植.NET Core計(jì)劃,整合各平臺(tái)變得更簡(jiǎn)單了!

  • ASP.NET Core 介紹

  • 通過(guò)幾個(gè)Hello World感受.NET Core全新的開(kāi)發(fā)體驗(yàn)

  • ASP.NET Core 運(yùn)行原理剖析1:初始化WebApp模版并運(yùn)行

  • .NET Core系列 : 1、.NET Core 環(huán)境搭建和命令行CLI入門


原文地址:http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注


贊賞

人贊賞

總結(jié)

以上是生活随笔為你收集整理的Asp.Net Core 发布和部署( MacOS + Linux + Nginx )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。