結合 Nginx 將 DoNetCore 部署到 阿裡雲

来源:https://www.cnblogs.com/hippieZhou/archive/2018/10/28/9799292.html
-Advertisement-
Play Games

基礎環境配置 功能變數名稱和伺服器請先自行購買 基於 雲伺服器ECS 創建一個應用實例,選擇系統鏡像為 Ubuntu 16.04 ,在本機通過 SSH 進行遠程連接,併進行相關配置 安裝並配置 Nginx 配置 default 文件,在文件末尾配置如下節點信息 檢測配置並更新 安裝 DotNetCore 請 ...


基礎環境配置

功能變數名稱和伺服器請先自行購買

基於 雲伺服器ECS 創建一個應用實例,選擇系統鏡像為 Ubuntu 16.04,在本機通過 SSH 進行遠程連接,併進行相關配置

ssh root@http://39.108.48.203/

...

sudo apt-get update
sudp apt-get upgrade
sudo apt-get autoremove
sudo apt-get clean

安裝並配置 Nginx

sudo apt-get install nginx
sudo service nginx start

sudo gedit /etc/nginx/sites-available/default

配置 default 文件,在文件末尾配置如下節點信息

# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
    listen        80;
    # 網站文件的目標位置
    root /home/hippie/website/wwwroot;
    # 網站功能變數名稱
    server_name your website name;
        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;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

檢測配置並更新

sudo nginx -t
sudo nginx -s reload

安裝 DotNetCore

請參考官網最新安裝說明:.NetCore Download

部署流程

打開 VisualStudio2017 右鍵要發佈的項目,點擊 publish,並參考下圖進行相關配置。



點擊 Save 按鈕並執行發佈操作。然後將 publish 文件夾上傳至伺服器相應位置,上傳成功後執行

dotnet run app.dll

如果不出意外的,這個時候,你就可以通過 IP 或者 你的網站功能變數名稱來進行訪問了。

創建守護進程

執行上述操作之後,我們的程式還是不能正在長時間運行,因此我們需要通過守護進程來管理我們的網站

sudo apt-get install supervisor
sudo vim /ect/supervisor/conf.d/website.conf

配置 website.conf 文件

[program:website]

#要執行的命令
command=/usr/bin/dotnet Attention.dll  

#命令執行的目錄
directory=/home/hippie/website 

#環境變數
environment=ASPNETCORE__ENVIRONMENT=Production 

 #進程執行的用戶身份
user=www-data 
stopsignal=INT

#是否自動啟動
autostart=true

#是否自動重啟
autorestart=true

#自動重啟間隔
startsecs=1 

#標準錯誤日誌
stderr_logfile=/var/log/website.err.log 

#標準輸出日誌
stdout_logfile=/var/log/website.out.log 

這個時候,我們執行下述命令啟動守護進程

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

supervisorctl shutdown 

sudo service supervisor start

好了,這個時候你可以嘗試關閉遠程連接進行網站訪問,如果能正常訪問的話,說明你的配置已經起作用了.

補充

在正常的生產環境中,我們還需要配置 HTTPS,關於這一部分,小伙伴們可以參考博客園中其餘大神的博客。

彩蛋

安利一個我的個人圖片網站,圖片資源來自於必應,感興趣的小伙伴歡迎體驗:

Pay Attention

相關參考


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

-Advertisement-
Play Games
更多相關文章
  • 題目描述 已知:Sn​=1+1/2+1/3+…+1/n。顯然對於任意一個整數K,當n足夠大的時候,Sn​大於K。 現給出一個整數K(1≤K≤15),要求計算出一個最小的n;使得Sn​>K。 輸入輸出格式 輸入格式: 一個正整數K 輸出格式: 一個正整數N 輸入樣例:1 輸出樣例:2 答案代碼: #i ...
  • 一、前言 之前ZYNQ與PC之間的網路連接依賴於外接硬體協議棧晶元,雖然C驅動非常簡單,但網路帶寬受限。現採用LWIP+PS端MAC控制器+PHY晶元的通用架構。關於LWIP庫,已經有很多現成的資料和書籍。其有兩套API,一個是SOCKET,另一個是本例中要用到的RAW。RAW API理解起來較為復 ...
  • 在這裡我要實現的是Spring的IOC和AOP的核心,而且有關IOC的實現,註解+XML能混合使用! 參考資料: IOC:控制反轉(Inversion of Control,縮寫為IoC),是面向對象編程中的一種設計原則,可以用來減低電腦代碼之間的耦合度。其中最常見的方式叫做依賴註入(Depend ...
  • dfs
    sdfsf ...
  • 前言 這篇文章是WPF框架系列的最後一篇,在這裡我想闡述一下我對框架設計的理解。 我對框架設計的理解是這樣的: 框架設計不應該局限於任何一種設計模式,我們在設計框架時,應該將設計模式揉碎,再重組;這樣設計出來的框架才具有一戰之力。 框架設計應該根據項目團隊成員水平量身定製。 我上一篇文章《我們都知道 ...
  • Console.WriteLine("100-1000的水仙花數有"); for (int i = 100; i < 1000; i++) { int a = i / 100 % 10;//百位 int b = i / 10 % 10;//十位 int c = i % 10;//個位 if (a * ...
  • VC2010和VC2017的標準庫中,string(或wstring)的數據結構和操作有所不同,所以在將這兩種數據作為參數在兩個系統產生的函數中傳遞時會出現亂碼(string和wstring在2017下必須是引用傳遞) ...
  • 作者:依樂祝 原文地址:https://www.cnblogs.com/yilezhu/p/9866068.html 在本文中,我將解釋命令模式,以及如何利用基於命令模式的第三方庫來實現它們,以及如何在ASP.NET Core中使用它來解決我們的問題並使代碼簡潔。因此,我們將通過下麵的主題來進行相關 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...