CentOS 7.4 下 如何部署 AspNetCore 結合 consul


      上篇我們講到consul的概念,以及在WIN下如何使用:http://www.cnblogs.com/szlblog/p/9162557.html

步驟如下:

1、安裝虛擬機VM

2、下載安裝 CentOS 7.4(地址就不提供了)

    這是安裝示例: VM虛擬機安裝CentOS 示例  https://www.jb51.net/article/108088.htm

 

3、配置網絡環境(確保網絡通)

4、下載安裝dotnet 運行環境

  4.1注冊Microsoft密鑰、注冊產品存儲庫和安裝所需的依賴項:每個機器執行一次

    執行命令如下:

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

    如下圖所示

    

  4.2、安裝.net SDK            

    執行命令如下:

    # sudo yum install dotnet-sdk-2.1  你想用哪個版本就換成哪個版本

    如下圖所示

    

  4.3、查看是否安裝成功:       

    執行命令如下:

    # dotnet –version

    如下圖所示

    

5、把我們在windows下創建的項目生成發布上傳到Linux

   操作步驟如下:

  5.1把項目生成發布:

     

  5.2、找到發布的文件夾打包成ZIP格式的壓縮文件

    

  5.3、下載安裝一個工具(哪種都行我用的是Xftp 5)用來上傳文件到Linux中

  5.4、進行項目發布壓縮包上傳:        

    上傳之前:我先使用命令創建了一個文件夾:命令如下:  

    # mkdir ~/AspNetCore

    開始上傳:如下圖

    

  5.5、執行命令解壓:

    解壓命令:# unzip /root/AspNetCore/MyFrameworkCore.zip

    如下圖所示:

     

  5.6、在當前解壓的文件夾下運行項目

    如下圖所示:

    

    5.7我們來運行一下查看結果如下:

    

6、在Linux下安裝Consul 

  6.1下載Linux版本的consul

    上篇 文章開始時我們提供過地址:

   

  6.2、發送到Linux中進行安裝

   1):這是第一種方法:

     

  2):第二種方法:命令下載:

    執行命令:Wget https://releases.hashicorp.com/consul/1.1.0/consul_1.1.0_linux_amd64.zip

     

  6.3、解壓文件:命令解壓

    執行命令:# unzip consul_1.1.0_linux_amd64.zip

    如圖所示

    

  6.4、運行啟動consul :命令運行

    執行命令:  ./consul  可以查看版本

    如圖:

     

    執行命令: ./consul agent -dev 開發者運行

     

   6.5、頁面訪問:地址為 127.0.0.1:8500

    結果如圖所示:

     

   6.6、我們通過命令行在運行項目注冊服務

    因為我們的端口是通過命令行去讀取的所以需要我們 在命令行中需要輸入相關命令

    命令行如下:

    

    注意如果我們在運行項目的時候一定要啟動Consul

     

7、安裝配置守護進程: 

    安裝守護進程的意義:為了在我們退出命令界面的時候使我們的網站繼續運行,就比如我們在VS中運行項目一樣,當VS停止運行的時候,項目也就無法運行了

  7.1、安裝 Supervisor 

    官方文檔了解更多:http://supervisord.org/

    為什么選擇用這個去做:因為微軟官方推薦

    執行命令進行下載:  Supervisor 

    yum install python-setuptools

    

  7.2、進行安裝

    執行命令:安裝

    命令:easy_install supervisor

    

  7.3、查看 Supervisor 配置文件

    輸入命令:echo_supervisord_conf

    結果如下:

    

     我們可以在終端的輸出的信息中最后一行看到如下圖所示:

    

    在這句話是我們需要替換一下新增也行:目的是為了方便讀取我們的配置文件:首先我們創建一個文件夾:移動  echo_supervisord_conf 文件

    命令如下:mkdir /etc/supervisor

    

  7.4、移動命令文件到新建文件夾中

    執行命令:echo_supervisord_conf > /etc/supervisor/supervisord.conf

    如下圖所示

    

  7.5、新增配置:在/etc/supervisor/supervisord.conf中

    注意 不要加 ; 空格

    添加內容: [include]files=conf.d/*.conf

    執行命令:vim /etc/supervisor/supervisord.conf

    內容如下圖所示:

    

  7.6、新建配置文件添加配置信息

    新建文件夾命令:mkdir conf.d

    切換到文件夾下:cd conf.d

    新建配置文件命令:touch AspNetCore.conf

    打開編譯配置文件命令:vim AspNetCore.conf

    如圖所示:新加配置信息:

    

    注釋如下:注釋一定要去掉

   

  7.7、重新加載配置信息:/etc/supervisor/supervisord.conf

    方法一:sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

    這里啟動的時候已經在運行了我們的私有配置:因為配置文件中我們加入了  [include]files=conf.d/*.conf

    

    方法二:

    #停止: sudo service supervisor stop

    #啟動:sudo service supervisor start

  7.8、運行結果:

    當 supervisor重新啟動的時候我們的配置已經生效了

    1)、首先我們訪問一下我們通過配置文件啟動的站點:

    

    2)、在查看我們的consul中是注冊了服務

    

 

  有關 supervisorctl的一些簡單命令:

    supervisorctl stop project停止某一個進程(programxxx)

    supervisorctl start project:啟動某個進程

    supervisorctl restart project:重啟某個進程

    supervisorctl stop groupworker:重啟所有屬於名為groupworker的進程

    supervisorctl stop all:停止全部進程

    supervisorctl reload:重新載入配置文件

    supervisorctl update:修改某個進程:

 8、安裝Negix

   

  8.1、首先我們需要安裝PRCE

  意義:PCRE 作用是讓 Nginx 支持 Rewrite 功能,因為nginx rewrite依賴於PCRE庫

     執行命令下載

            wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

            結果如下:

    

    

  在SRC文件夾下 輸入命令 ll 進行查看我們可以看到下載結果

   執行解壓命令:tar zxvf pcre-8.35.tar.gz  解壓如下圖所示

  

 

  8.2、進行PCRE安裝:

  在我們解壓的時候,可以看到我們的解壓目錄是:pcre-8.35 切換到該目錄 下進行安裝:具體步驟如下

  1)、執行命令切換目錄:cd ./pcre-8.35 

  注意:當你找不到文件路徑的時候使用 find -name 文件名稱進行查找

  結果如下:

  

  

  2)、執行安裝命令進行安裝:

  命令:./configure

  結果如下

  

     執行命令:make && make install

          命令完成后,PCRE完成安裝

         查看版本命令:pcre-config --version

 8.3Negix下載安裝:

 

  1)、執行命令下載:

  wget http://nginx.org/download/nginx-1.6.2.tar.gz

   這個版本想換掉就更改一下版本

   

  2)、執行命令解壓:

  命令:tar zxvf nginx-1.6.2.tar.gz

      結果如下:

   

  3)、進行安裝

    執行命令:

    ./configure

      命令最后會輸出我們Nginx的路徑,日志等文件信息

    

  然后執行:make

   最后是:make install

       查看版本:/usr/local/nginx/sbin/nginx -v

  

  

  4)、啟動的時候,注意切換到我們的Nginx目錄下

       輸入命令:cd /usr/local/nginx/sbin

       輸入啟動命令: ./nginx

       如圖所示:

    

              這里配置文件所在目錄,請看第 4)、小節點進行安裝時的輸出(截圖中有) 

   5)、如何查看我們的安裝結果

         命令行運行:curl http://127.0.0.1 結果如下

    

    在瀏覽器中查看:

     

  6)、有關Nginx的配置

    命令打開配置文件:

     

  

    具體配置信息如下:

               我們把cunsul的注冊到配置中

   server {

                    listen      0.0.0.0:10000;

                    server_name  szlconsul.com;

              location / {

                    proxy_pass http://localhost:8500;

                    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;

                 }

  8)、重新加載Nginx配置

    切換到配置目錄下

    執行命令:.nginx -s reload 重新加載

    執行命令:.nginx -s reopen 重新打開

    執行命令:.nginx -s stop   關閉

    

    運行結果:如下圖所示;

    

 

 

9、開放centos 的端口外部訪問:

  我們要保證虛機的端口是可以被外部訪問的,因為Linux系統對我來說很陌生,在使用的過程中,都是要學,有時候一個命令我就要查詢很多的資料,中間收貨確實不小,建議每一個初接觸Linux的千萬不要別人給個命令咱逮住就用,萬一命令是刪除什么的就不好了,  保持謹慎。

  在張善友老師整理 文檔中我們也可以看出大佬對命令的態度:張老師整理文檔地址

  Github: https://github.com/geffzhang/opendotnet 

 

  1.1、:關閉firewall 防火牆:(7.0以后都是firewall

        為什么關閉firewall防火牆

  1)在使用Docker時,啟用centos7默認的firewall,啟動端口映射時,防火牆規則不生效。docker默認使用了iptables防火牆機制。所以需要關閉firewall使用iptables解決

  2)、還有的人說是因為習慣,之前centos5  centos6使用iptables 防火牆相關規則習慣了iptables,亦或者其他的第三方軟件使用防火強規則也是iptables的。

  3)、也可能是firewall沒用習慣。

  4)、使用命令:

    1)、關閉firewall防火牆:

    命令:systemctl stop firewalld.service 關閉防火牆

    命令:systemctl disable firewalld.service關閉防火牆開機啟動

 

    2)、安裝iptables防火牆:

      命令:yum install iptables  安裝

      命令:vim /etc/sysconfig/iptables

    添加配置信息:

     

    

    命令:service iptables restart 重新啟動iptables 防火牆

    命令:systemctl enable iptables.service 設置防火牆開機自啟

    外部運行:結果如下:

    

 

                   有不足之處 希望大家指出相互學習,

                                     本文原創:轉載請注明出處 謝謝!

 

 


免責聲明!

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



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