一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

2020-04-12 16:09Savorboard ASP.NET教程

這篇文章主要介紹了詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx ) ,具有一定的參考價(jià)值,有興趣的可以了解一下。

前言

 

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

目錄

 

  • 新建一個(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 中的截圖:
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

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

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

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

新建了應(yīng)用程序之后,使用dotnet restoredotnet run 命令來測(cè)試一下我們的應(yīng)用程序。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
可以看到已經(jīng)成功運(yùn)行了。
我們打開瀏覽器輸入 http://localhost:5000,來看一下效果。

ps: Safari 下面,瀏覽器地址欄看不到端口號(hào),實(shí)際上是5000端口。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

發(fā)布到 Linux,Mac OS

 

如果發(fā)布應(yīng)用程序,我們需要使用 dotnet publish命令,通過使用 --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í)候,說明已經(jīng)發(fā)布成功了。 接著進(jìn)入到 bin 文件夾下的Debug 文件夾下的netcoreapp1.0 文件夾,然后會(huì)看到有一個(gè) publish 的文件夾。這就是默認(rèn)發(fā)布生成的文件夾,在這個(gè)文件夾中可以看到我們程序所有依賴的程序集文件。

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

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

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

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

 

  • Mac OS
  • Linux(Ubuntu)
  • 注意事項(xiàng)

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

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

詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

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

Mac OS

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

1、 在 mac 中打開命令行,輸入 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 打開,在 Server 節(jié)點(diǎn)中,找到監(jiān)聽 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命令來重新加載配置。
然后我們打開瀏覽器 輸入http://localhost,發(fā)現(xiàn)此時(shí)已經(jīng)通過 nginx 來訪問我們的站點(diǎn)了。
ps: Safari 下面,瀏覽器地址欄看不到端口號(hào),實(shí)際上是80端口。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

Linux(Ubuntu)

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

首先在Ubuntu 中新建一個(gè)文件夾,把我們發(fā)布的 publish 文件夾拷貝到 Liunx 中。然后測(cè)試一下是否可以正常運(yùn)行。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

1、 在 linux(Ubuntu) 中新開一個(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)行成功,打開瀏覽器,輸入 http://localhost 查看是否顯示如下界面。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

3、配置 nginx 代理。

安裝完 nginx 之后,默認(rèn)的配置文件路徑在 /etc/nginx/sites-available/default 文件中。切換工作目錄到/etc/nginx/sites-available/,使用sudo gedit default命令打開 default 文件。 在 Server 節(jié)點(diǎn)中,找到監(jiān)聽 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命令來重新加載配置。
然后我們打開瀏覽器 輸入http://localhost,發(fā)現(xiàn)此時(shí)已經(jīng)通過 nginx 來訪問我們的站點(diǎn)了。
詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

注意事項(xiàng)

 

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

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

nohup dotnet HelloWebApp.dll &

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

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


延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久WWW免费人成一看片 | 好湿好紧太硬了我好爽 | 亚欧美色| 天天翘 | av中文字幕在线 | 国产自产一区c | bt天堂在线最新版www | 亚洲娇小性hd | 18日本xxxxxxⅹxx96 | 熟睡中的麻麻大白屁股小说 | 日本无遮挡吸乳视频看看 | 久久99精品久久久久久园产越南 | 久久精品午夜一区二区福利 | 高清一区二区 | 日本中文字幕不卡在线一区二区 | 日本免费一二区 | 久久综合网久久综合 | 非洲黑人bbwbbwbbw| 国产精品suv一区二区 | 黑人艹 | 高贵女王调奴vk | 精品视频在线免费播放 | 女人把扒开给男人爽 | 国产拍拍拍 | 国产精品视频久久久久 | 变态np虐高h | 99国产牛牛视频在线网站 | 俄罗斯一级在线播放 | 四虎影视免费观看 | 欧美高清在线不卡免费观看 | 亚洲国产99 | 国产麻豆剧果冻传媒影视4934 | 好吊操这里有精品 | 国产嘿咻 | oneday高清在线观看 | 日产乱码2021永久手机版 | 99久久精品免费精品国产 | 国产成人精品高清在线观看99 | 国产乱叫456在线 | 久操久操久操 | 精品综合久久久久久97超人 |