Linux+.Net Core+Nginx(在Linux上使用Nginx反向代理.Net Core 項目)

来源:https://www.cnblogs.com/hulizhong/archive/2019/04/15/10713504.html
-Advertisement-
Play Games

Linux+.Net Core+Nginx 之前的文章中有提到關於使用Nginx在linux來實現反向代理,今天我們繼續加點料。在Centos7中部署.NetCore,然後使用Nginx進行反向代理! 我們先準備好一個.Net Core 的 Web 項目,然後發佈成linux版本,然後在根目錄下麵去 ...


Linux+.Net Core+Nginx

之前的文章中有提到關於使用Nginx在linux來實現反向代理,今天我們繼續加點料。在Centos7中部署.NetCore,然後使用Nginx進行反向代理!

我們先準備好一個.Net Core 的 Web 項目,然後發佈成linux版本,然後在根目錄下麵去尋找到剛發佈的項目文件,為後續做好準備。

       然後我們需要在Linux上安裝.Net Core的環境以便於我們的項目能正常的運行在上面。

1、安裝.Net Core

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

2、安裝.net core sdk 並更新

sudo yum update

sudo yum install dotnet-sdk-2.2(當前項目或者使用版本)

3、查看下.net core 版本是否安裝成功

dotnet –version

到這裡.Net Core的環境在Linux上算是裝好了,接下來就進入正題開始部署項目。

4、創建Test文件夾並且上傳剛剛發佈好的項目文件至其下麵

mkdir Test

5、當把發佈的文件上傳至Tset目錄下之後我們就可以創建服務了

sudo nano /etc/systemd/system/Test.service

 

6、配置好服務文件

[Unit]

Description= Test

[Service]

WorkingDirectory=/root/ Test

ExecStart=/usr/bin/dotnet /root/Test/Test.dll

Restart=always

RestartSec=10

SyslogIdentifier= Test

User=root

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

 

[Install]

WantedBy=multi-user.target

 

其中文件詳解

Description    一個簡單的描述

WorkingDirectory   服務工作的目錄

ExecStart          啟動時執行的命令

Restart              出錯了是否重啟  建議   always

RestartSec           重啟的時間

User                用戶

WantedBy           該服務所在的連接地址

7、重啟服務,開啟服務並且查看狀態
systemctl  enable Test.service

systemctl  start Test.service

systemctl  status Test.service

看到上面這個圖片的樣子說明啟動運行成功了。然後我們可以輸入ip+5555去看看效果如何
但是請求了半天發現好像沒有反應,我們回過頭來檢查下,好像遺漏掉了一個東西。5555埠是否開了,當然我們也可以直接關閉防火牆,簡單粗暴
8、關閉防火牆或者打開5000埠
關閉防火牆:

systemctl status firewalld      查看運行情況

 

firewall-cmd –state     查看狀態

 

service firewalld stop  關閉防火牆

 

firewall-cmd –state   查看狀態

開啟5000埠:

firewall-cmd --zone=public --permanent --add-port=5555/tcp; firewall-cmd --reload


出現這個頁面證明部署.NetCore 應用一切順利,接下來我們開始安裝nginx並且實現反向代理、至於如何在Linux上安裝Nginx並運行我在前面文章已經詳細介紹了,又忘記了得可以再看看
https://www.cnblogs.com/hulizhong/p/10672918.html
卸載nginx命令

yum remove nginx

 

我們安裝好Nginx之後需要在nginx.conf中進行一定的修改
server {
    listen 8888;
    location / {

  proxy_pass http://localhost:5555;

  proxy_http_version 1.1;

  proxy_set_header Upgrade $http_upgrade;

  proxy_set_header Connection keep-alive;

  proxy_set_header Host $http_host;
 
  proxy_cache_bypass $http_upgrade;
} }

 

修改監聽埠為8888,然後轉發地址為剛在項目運行的地址ip+5555,一切順利完成之後

重啟nginx

sudo nginx -t

 

sudo nginx -s reload

然後我們在去瀏覽器中輸入ip+8888,驚奇的發現我們訪問的內容居然和ip+5555的是一樣的

然後到這裡Linux+.NetCore+Nginx就正式完成了,這僅是一個小的例子以便於瞭解,具體在項目當中如何使用還需要更多的瞭解。


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

-Advertisement-
Play Games
更多相關文章
  • 當伺服器是Linux的時候不懂指令覺得很懊惱,這個時候直接就可以使用PHPstorm連接伺服器操作了; 1丶準備工作 首先你先要準備伺服器丶phpstorm這兩個吧! 2丶開始配置phpstorm 按照紅線的部分一步一步的走 點擊configuration 點擊+號 我直接選擇的sftp 就這樣連接 ...
  • 1. 三種控制結構是什麼? 答:順序結構,選擇結構,迴圈結構 2. 如果if語句後不加{},if的控制範圍是否只限於第一句? 答:if語句的控制範圍只能是緊接著的一句,使用{}可以將多個語句合併成為一個複合語句,進而控制多個語句。 3. Math.random()是什麼意思?如果想要獲取15到20之 ...
  • 閱讀本文只需花費你兩分鐘, 兩分鐘你買不了吃虧,你也買不了上當. 那麼, 為何不靜下心來看看呢? Python 海龜創意繪畫, Turtle庫創作精美圖畫 Author:Amd794 E-mail:[email protected] 全部完整代碼下載地址 前言: 最初來自於 Wally Feurzi ...
  • 本文首發於公眾號:javaadu 003:位元組碼是什麼? 在Java中,位元組碼存放於以.class結尾的二進位文件。 位元組碼之於Java,類似於彙編語言之於C/C++。對於C/C++語言來說,不同的平臺需要不同的編譯器,以應對不同的操作系統和機器指令集;對於Java來說,只需要一個編譯器(javac ...
  • 面向對象: 程式由對象構成,每個對象包含對用戶公開的特定功能部分(public)和隱藏實現部分(private)。 類: 構造對象的模板 對象: 對象的行為 可以對對象施加的操作(方法) 對象的狀態 對象的域的值 對象的表示 行為相同,但狀態不同的對象(equals()方法) 類之間的關係: 依賴 ...
  • 一,複習 二,今日內容: 三,如何定義函數: 四,函數的參數: 兩種實參: 1,位置實參: a,傳參兩種方式:實參名|實參具體值 b,必須按位置對形參進行傳值 2,關鍵字實參: a,傳參兩種方式:形參名=實參名 | 形參名=實參值 b,可以指名道姓對形參進行傳值,所以可以不用按位置進行傳參 ''' ...
  • 索引 1.定義模型類 2.模型類 3.欄位查詢 4.查詢集 5.模型類關係 6.模型類擴展 ORM簡介 ORM,全拼Object-Relation Mapping,中文意為對象-關係映射,是隨著面向對象的軟體開發方法發展而產生的。面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關係資料庫 ...
  • 答案:i=14;i=10; 2.請輸出B.test()的輸出結果 答案: i am B; i am B; 1; 2; 3.有序集合seqList{1,1,2,3,5,8,13,21,34.........}請查找集合中第一個大於2147483647的數。 答案:此函數是有名的斐波那契數。實現此函數的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...