.NET CORE 部署到 CentOS7全部過程


從WIN系統 轉到linux系統來,簡直讓我放棄,抓狂,我就想部署個網站怎么那么多問題。。。不過還是賺錢要緊。

下面記錄一下 從頭到尾 怎么部署到 centos7entos7上面去

 

首先你要有台linux系統及其 centos (好吧,這是廢話,阿里雲隨便花幾十塊買一個試試)

 

1. 安裝圖形界面。這很WIN。 我前面說了,所以圖形界面救了我的命 至於為什么要這樣,別問我,問我就就告訴你3部曲

yum groups install 'MATE Desktop' # 安裝圖像界面
yum groups install 'X Window System' # 圖像系統 我也不知道怎么接受,沒這個,你進不去
systemctl set-default graphical.target #設置圖像界面為啟動項
reboot  #重啟

2.安裝nginx (編譯安裝我就不說了,度娘一大堆資料)

1. 安裝
yum install -y nginx

2. 啟動nginx並設置開機啟動
systemctl start nginx

systemctl enable nginx

3. 驗證nginx是否啟動
ps -ef | grep -v grep | grep nginx

4. 查看nginx配置文件
vi /etc/nginx/nginx.conf

5. 對於yum安裝的nginx來說,要想使配置文件的修改生效,需要重啟nginx,運行以下命令:
systemctl restart nginx

3.上傳文件配置上傳項目文件會用到。那個 FTP我搞的頭大,WIN下面安裝一個軟件 點點就好了

yum -y install lrzsz

上傳文件命令
rz

4.下載xshell 工具 (我在這里下載的 https://www.netsarang.com/zh/) 當然這個工具看自己了 用WIN10自帶也可以

 

5.在 centos7上安裝 .NETCORE SDK  一路 y 就行了,別問我為什么,y就行了,我也不知道

官方地址
https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current


添加dotnet產品密鑰命令

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

安裝.NET SDK命令

sudo yum update
sudo yum install dotnet-sdk-2.2

6. .NET CORE 發布

1.進入對應的目錄
cd /xxxxx

2. 用dotnet 命令啟動試試 dotnet [xxxx].dll  xxx是你生成的項目*.dll 后面是更改端口,因為默認是 5000 https 5001 顯然不用它的是不是

dotnet WebApplication1.dll --server.urls "http://*:1818"

 

好了。本地訪問下,咦 是可以了,但是我關掉 xshell  就嗝屁了,這怎么行呢。好了看下面。(官方也有用服務,但是貌似我沒整好。)

那用守護進程來 nginx代理 

好。我們先來用守護進程 讓它永久啟動先

 

7.用守護進程讓 .netcore網站一直在啟動狀態

1.安裝supervisor
 yum install supervisor

2.啟動服務 看配置文件地址 這里自己注意下,看你的安裝配置文件在里,錯了會啟動失敗,前面有圖形界面了可以自己查看
supervisord -c /etc/supervisord.conf

3.編輯配置文件 路徑在 /etc/supervosprd.d 下面創建一個隨便你自己取名的 .ini 比如

netcore.ini 內容是下面的

[program:DeployLinux]   #DeployLinux  為程序的名稱
command=dotnet /apps/api/api/xxx.dll --urls="http://localhost:1818" #需要執行的命令
directory=/website/test #命令執行的目錄
environment=ASPNETCORE_ENVIROMENT=Production #環境變量
user=root #用戶
stopsignal=INT 
autostart=true #是否自啟動
autorestart=true #是否自動重啟
startsecs=3 #自動重啟時間間隔(s)
stderr_logfile=/var/log/ossoffical.err.log #錯誤日志文件
stdout_logfile=/var/log/ossoffical.out.log #輸出日志文件

仔細看看,commadn是不是跟上面那個doten xxxx.dll很相似啊。對就是這樣,不解釋了

 

好了,我們關了 shll,呦 ,呦 , 呦 ,可以訪問了啊。不得了了了。 真雞兒費神,部署個網站要上天了,然鵝你發現,重啟后又不行了。我丟,原來沒設置重啟服務器  自啟守護軟件

啟動設置

--------------配置自啟服務

路徑 /etc/systemd/system 

自己創建一個 sv-auto.service (這個文件名稱自己創建)

服務文件內容填寫

[Unit]
Description=sv auto #描述
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf 
ExecStop=/usr/bin/supervisord shutdown
ExecReload=/usr/bin/supervisord reload 
killMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

--設置開機自啟命令
systemctl is-enabled [這個是你的文件名]

systemctl is-enabled sv-auto

 

8.Nginx部署的配置文件,因為默認,它會默認找一個目錄,在這個目錄新建自己的配置文件 比如

 

server {
    listen        80;
    server_name   example.com *.example.com; #沒域名刪掉可以
    location / {
        proxy_pass         http://localhost:1818;
        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;
    }
}

  

好了。這樣就正在達到了可以真正 可訪問的站點了, 如果在 WIN服務版本下,遠程連接-安裝IIS-新建項目-指向目錄-完事了

 

從WIN過來,一下真的很難接受,為什么那么麻煩,可定很多人說弄弄腳本什么的。我們又不是專業的運維 沒太多時間花這世界上,很多時候我們需要更快的解決問題,工具本來就是為了解決問題,而不是制造問題

最后放一下,微軟自己官網的教程

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1

 

下一步寫寫容器怎么部署。

 


免責聲明!

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



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