自從微軟退出了netcore,那么對于.net程序員最快樂的事情莫過于可以拋棄被人鄙夷的windows操作系統(tǒng)了。擁抱linux,擁抱開源,看著linux的命令窗口才有那么一絲絲高深莫測的味道~
寫netcore也挺久了,但是也一直部署在windows服務(wù)器上,于是今天便忙里偷閑,來嘗試一次centos7上部署的感覺
當(dāng)然是環(huán)境,安裝netcore sdk或netcore 運行時。
具體可以參考微軟的文章,還是挺簡單的:[在 CentOS 上安裝 .NET Core SDK 或 .NET Core 運行時]( https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos)
裝好以后,就是將項目打包放到自己喜歡的文件夾里就好了。
接著通過,dotnet xxx.dll運行起來看看。那么文件就會按照你配置的端口運行起來了。
安裝nginx的作用當(dāng)然是反代,讓外網(wǎng)可以訪問到你的項目。
由于我的服務(wù)器上本來就裝好了nginx,所以這一步我就不多說了,園子里應(yīng)該也有很多詳細(xì)的文章。
server
{
listen 80;
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;
}
}
主要是加上了上面這句話,對5000端口進(jìn)行反代。當(dāng)然端口可以自定義,具體的參考dotnet cli的命令即可。
如果不做這一步就結(jié)束的話,那么你關(guān)了遠(yuǎn)程連接的小黑框,你的項目也會跟著關(guān)閉。
1.安裝supervisor
yum install supervisor
2.修改supervisord.conf的配置文件
[include]
files = /etc/supervisor/conf.d/*.ini
修改成這樣即可,這只是一個讀取進(jìn)程配置文件的路徑,意思就是讀取 /etc/supervisor/conf.d/路徑下所有的.ini文件,所以對路徑不強求,自己定義即可,只需將.ini文件放在對應(yīng)的路徑下。
3.編輯配置文件 路徑在 /etc/conf.d 下面創(chuàng)建一個xxx.ini的文件,以下是內(nèi)容
[program:DemoCore] #DemoCore是進(jìn)程名,可自定義
command=dotnet Demo.dll #用執(zhí)行的命令
directory= /home/project/publish/ #執(zhí)行命令的文件夾
autostart=true #是否自啟動
autorestart=true #是否自動重啟
startretries=5
startsecs=1 #自動重啟時間間隔
numprocs=1
stderr_logfile=/var/log/Demo.err.log #錯誤日志文件
stdout_logfile=/var/log/Demo.out.log #輸出日志文件
enviroment=ASPNETCORE_ENVIRONMENT=Production #環(huán)境變量
stopsignal=KILL
stopwaitsecs=10
4.啟動服務(wù)
supervisord -c /etc/supervisord.conf
以上,netcore項目就成功部署在了centos7服務(wù)器上了。
PS:supervisor有一個自帶的圖形化界面,只需在剛剛的supervisord.conf文件中修改成如下即可
[inet_http_server] ; inet (TCP) server disabled by default
port=0.0.0.0:9001 ; ip_address:port specifier, *:port for all iface
username=user ; default is no username (open server)
password=123 ; default is no password (open server)