從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
下一步寫寫容器怎么部署。
