1. 程式人生 > >Linux+.Net Core+Nginx(在Linux上使用Nginx反向代理.Net Core 項目)

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

live 監聽 header 需要 圖片 conn soft color 忘記

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就正式完成了,這僅是一個小的例子以便於了解,具體在項目當中如何使用還需要更多的了解。

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