ASP.NET Core學習之四 在CentOS上部署.net core


一、安裝CentOs

以前在大學學過linux,但是對命令行總是有一種深深的排斥感,幾年之后,還是又回來了。

1.下載

現在沒法翻牆,就算是翻牆網速也是蝸牛一樣慢,我使用阿里雲的鏡像站進行下載速度還是杠杠的。

我使用的鏡像地址是 https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso ,可以根據自己需要去下載,總目錄地址:https://mirrors.aliyun.com/centos/

2.安裝

安裝教程網上非常多,這里也不詳細解說,我是根據百度經驗的文章搭建的,教程地址是https://jingyan.baidu.com/article/eae0782787b4c01fec548535.html

二、部署.NET core

1.發布程序

首先,創建.NET CORE 2 MVC項目,確保能運行成功;然后,發布.NET程序。

.net core 分為兩種應用類型,分別是Portable application(便攜應用)和Self-contained application(自宿主應用); 需要詳細了解的請看 擁抱.NET Core,如何開發跨平台的應用並部署至Ubuntu運行 。

在生產環境中需要考慮服務器更好的性能,所以使用便攜式發布(簡單說就是服務器自帶core環境)。

在當前項目右鍵進行發布到文件夾即可,默認路徑為bin\Release\PublishOutput。

 

2.安裝.NET Core SDK

  這里就是配置centos的core環境,讓我們的網站可以運行起來。

  官方的安裝文檔:https://www.microsoft.com/net/learn/get-started/linuxcentos

在centos的右上角打開應用程序,找到終端並打開。

  首先、Add the dotnet product feed(其實就是向微軟提交投名狀,表示我這台服務器要用core),注意:先檢測下是否能聯網;

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
 

   然后,才安裝 core SDK。

命令一:sudo yum update

  需要一段時間,而且會提示是否繼續,輸入y然后回車。

  如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通過以下命令強制關閉: rm -f /var/run/yum.pid

命令二、sudo yum install libunwind libicu
命令三、sudo yum install dotnet-sdk-2.0.2

  這一步也需要下載安裝包,耗時需要比較長時間。完成后使用命令 dotnet --help 查看下是否安裝成功。

3.部署網站

  首先,創建文件夾core,命令為

mkdir core

cd core

  我這里使用的是虛擬機,就直接將生成好的文件考到core目錄下,然后執行命令(dotnet 項目名稱.dll)

dotnet DotNetCoreWebDemo.dll

 

直接使用自帶的火狐瀏覽器就能訪問http://localhost:5000

 

終於部署完了,由於整個過程都是使用圖形界面,也沒有遇到不懂命令的難題。

其實還有很多問題存在:

如何使用nginx?

怎么配置守護服務supervisor?

怎么使用docker ?

三、使用nginx

1.安裝nginx

可以FQ的去看原文:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

1.添加 CentOS 7 EPEL 倉庫

sudo yum install epel-release

2.安裝nginx

sudo yum install nginx

3.啟動nginx

sudo systemctl start nginx

4.使用ip訪問,出現以下界面即成功安裝

2、配制環境    

  1)配置防火牆

    命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80端口)

    命令:systemctl restart firewalld(重啟防火牆以使配置即時生效)

  2)關閉SELinux ,使用getenforce 查詢 

    臨時關閉(不用重啟機器):

      setenforce 0                  ##設置SELinux 成為permissive模式

      ##setenforce 1 設置SELinux 成為enforcing模式

    修改配置文件需要重啟機器:

      修改/etc/selinux/config 文件

      將SELINUX=enforcing改為SELINUX=disabled

      重啟機器即可

  3) 修改Nginx 配制,保存

              命令: vim /etc/nginx/nginx.conf

     location / {
       proxy_pass http://localhost:5000;
     }

      4) 重新加載Nginx配制文件

             命令:nginx -t 測試配制文件是否正確

             命令:nginx -s reload 重新加載nginx配制文件,不用重啟nginx

    第三步補充: 通過反向代理將ip訪問指向到 http://localhost:5000

    修改/etc/nginx/nginx.conf文件,在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-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

如果是多站點部署,在conf.d下創建一個core.conf,內容為 server{ ... }

注意:如果不修改第二步,會被selinux的安全設置拒絕,導致反向代理失敗

 

......

還需努力,只是邁出了半步。。。

最后說一句,盡量把虛擬機搞的性能高一點,真是卡死我也。

 

 

參考文章:

 https://www.cnblogs.com/Leo_wl/p/5734988.html

https://www.cnblogs.com/ares-yang/p/7736842.html

https://www.cnblogs.com/hohoa/p/5691071.html

https://www.cnblogs.com/ants/p/5732337.html

https://www.cnblogs.com/Burt/p/6566642.html

 https://www.cnblogs.com/rabbityi/p/7019662.html

 http://blog.csdn.net/jollypigclub/article/details/46862371 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM