asp.net core 2.1 部署 centos7

来源:https://www.cnblogs.com/lenovo_tiger_love/archive/2018/09/08/9610140.html
-Advertisement-
Play Games

asp.net core 2.1 部署 centos7 Kestrel 非常適合從 ASP.NET Core 提供動態內容。 但是,Web 服務功能不像伺服器(如 IIS、Apache 或 Nginx)那樣功能豐富。 反向代理伺服器可以從 HTTP 伺服器卸載服務靜態內容、緩存請求、壓縮請求和 SS ...


asp.net core 2.1 部署 centos7

Kestrel 非常適合從 ASP.NET Core 提供動態內容。 但是,Web 服務功能不像伺服器(如 IIS、Apache 或 Nginx)那樣功能豐富。 反向代理伺服器可以從 HTTP 伺服器卸載服務靜態內容、緩存請求、壓縮請求和 SSL 終端等工作。 反向代理伺服器可能駐留在專用電腦上,也可能與 HTTP 伺服器一起部署。
鑒於此指南的目的,使用 Nginx 的單個實例。 它與 HTTP 伺服器一起運行在同一伺服器上。

  • 參考文檔
  1. 官方文檔
  • 64位安裝SDK所需依賴
  1. yum update
  2. yum -y install libunwind
  3. yum -y install libicu
  • 註冊微軟產品密鑰
  1. 執行 sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
  • 安裝SDK/runtime
  1. yum -y install dotnet-sdk-2.1 或 yum -y install aspnetcore-runtime-2.1
  • 檢測安裝
  1. 執行 dotnet --info,驗證安裝結果,如下:

    .NET Core SDK (reflecting any global.json):

    Version: 2.1.401

    Commit: 91b1c13032

    Runtime Environment:

    OS Name: centos

    OS Version: 7

    OS Platform: Linux

    RID: centos.7-x64

    Base Path: /usr/share/dotnet/sdk/2.1.401/

    ...

  • 創建並允許實例
  1. 創建MVC應用程式 X:\mvcApp2 dotnet new mvc
  2. 本地運行(win10) dotnet run
  3. 瀏覽器訪問
  4. 發佈linux程式 dotnet publish -c Release -o "XX:\Web_IIS\mvcApp2" -r centos.7-x64

    .net core運行時標識符

  5. xftp上傳文件到指定目錄 /home/doetnetcore/mvcApp2
  6. 運行程式 cd /home/dotnetcore/mvcApp2 dotnet mvcApp2.dll 如圖:預設啟用5000埠
  7. centos7 外部電腦若無法訪問,請檢查網路防火牆(即使關閉防火牆埠預設只開放22)
  8. 檢查站點運行情況 curl http://localhost:5000

    curl命令介紹

  9. 查看防火牆狀態 firewall-cmd --state //running 表示運行

    附防火牆相關命令

    啟動: systemctl start firewalld

    查看狀態:systemctl status firewalld

    停止:systemctl disable firewalld

    禁用:systemctl stop firewalld

    啟動服務:systemctl start firewalld.service

    關閉服務:systemctl stop firewalld.service

    重啟服務:systemctl restart firewalld.service

    服務的狀態:systemctl status firewalld.service

    在開機時啟用一個服務:systemctl enable firewalld.service

    在開機時禁用一個服務:systemctl disable firewalld.service

    查看服務是否開機啟動:systemctl is-enabled firewalld.service

    查看已啟動的服務列表:systemctl list-unit-files|grep enabled

    查看啟動失敗的服務列表:systemctl --failed

    查看版本: firewall-cmd --version

    查看幫助: firewall-cmd --help

    顯示狀態: firewall-cmd --state

    查看所有打開的埠: firewall-cmd --zone=public --list-ports

    更新防火牆規則: firewall-cmd --reload

    查看區域信息: firewall-cmd --get-active-zones

    查看指定介面所屬區域: firewall-cmd --get-zone-of-interface=eth0

    拒絕所有包:firewall-cmd --panic-on

    取消拒絕狀態: firewall-cmd --panic-off

    查看是否拒絕: firewall-cmd --query-panic

  • 配置Nginx轉發
  1. 安裝Nginx

    命令 curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

    rpm -ivh nginx.rpm

    yum install nginx

  2. 檢查埠占用情況 yum install net-tools netstat -a //埠列表
  3. 啟動 nginx

    命令:systemctl start nginx

    設置開機啟動 systemctl enable nginx

    firewall-cmd --zone=public --add-port=80/tcp --permanent(永久啟用80埠)

    重啟防火牆 systemctl restart firewalld

    瀏覽器測試nginx能否正常訪問

  4. 修改nginx配置文件

    yum -y install vim 可用預設vi替代

    修改 /etc/nginx/conf.d/default.conf 文件。

    通過 vim /etc/nginx/conf.d/default.conf 打開,編輯裡面的內容,保存時按 Esc 再輸入 :wq! 命令保存退出

    修改為如下腳本:

 server {
    listen 80;
    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;
    }
  }
  1. 啟動站點 瀏覽器正常訪問asp.netcore 應用程式
  2. Nginx參考文獻

    http://nginx.org/en/docs/

    http://tengine.taobao.org/book/index.html

其他參考文檔:https://yq.aliyun.com/articles/584510

  • 配置守護服務(Supervisor)

  • 配置Apache轉發
  1. 參考文檔

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "linq2db.EntityFrameworkCore" 是一個ef core的插件,對linq語法的擴展 對複雜的sql都有很好的支持,他是基於linq2db (provided by LINQ To DB) 如果你使用了linq2db的語法擴展那麼你必須使用下麵的方法進行查詢 下麵是 linq ...
  • 對於Word文檔中包含較多的超鏈接,如果一個個來刪除很花費時間和精力,本篇文章將提供一種可用於批量刪除Word中的超鏈接的方法。這裡的超鏈接可以是頁眉頁腳處的超鏈接、正文中的超鏈接、表格中的超鏈接、文字超鏈接、圖片超鏈接等等。下麵將具體演示如何來進行代碼操作。 所需工具 Free Spire.Doc ...
  • 在開發項目的時候,往往碰到的不同的需求情況,相容不同類型的資料庫是我們項目以不變應萬變的舉措之一,在底層能夠相容多種資料庫會使得我們開發不同類型的項目得心應手,如果配合快速的框架支持,那更是錦上添花的舉措。我開發的項目或者框架,採用了微軟企業庫Enterprise Library的模塊,傾向於支持多... ...
  • 1、前臺的表單: <form enctype="multipart/form-data" method="post" id="inportFile" name="inportFile"><input type="file" name="excelfile" id="excelfile"/></for ...
  • 這次我選擇安裝Gentoo,用來做我學習的筆記。這次我是使用虛擬機安裝Gentoo,一是方便操作,二是可以看著手冊,一邊看一邊操作,嚴格按照手冊上的步驟執行,一般是不會出現問題的。 查看手冊最好學會看英文原版的,因為更新快,中文原版的可能很久無法更新,也會導致安裝失敗。 這裡提供amd 64位的英文 ...
  • 1、切換至root 或 然後輸入密碼 這種只切換身份,不切換home工作目錄 或 然後輸入密碼 這種不僅切換身份,而且切換home工作目錄 2、切換至普通用戶(比如:oracle) 然後輸入密碼 這種只切換身份,不切換home工作目錄 或 然後輸入密碼 這種不僅切換身份,而且切換home ...
  • 計劃任務 cron 計劃任務: 讓系統在將來的指定時間點執行某些任務(程式);任務可以周期性執行也可以僅僅執行一次。 Linux系統中計劃任務:at和cron服務是操作系統內置的2個服務,預設情況是安裝好的。 at服務:指定某個時間一次性執行某個任務,依賴於系統後臺atd進程 cron服務:指定時間 ...
  • 一.查看進程命令ps 1.1 預設ps 命令 在預設情況下,ps命令只會顯示運行在當前控制臺下,屬於當前用戶的進程,在上圖中,我們只運行了bash shell以及ps命令本身。 上圖中顯示了程式的進程ID(1538,1583),它們運行在TTY終端, 以及進程已有的CPU(TIME)時間。 1.2  ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...