缘起
自从微软退出了netcore,那么对于.net程序员最快乐的事情莫过于可以抛弃被人鄙夷的windows操作系统了。拥抱linux,拥抱开源,看着linux的命令窗口才有那么一丝丝高深莫测的味道~
写netcore也挺久了,但是也一直部署在windows服务器上,于是今天便忙里偷闲,来尝试一次centos7上部署的感觉
过程
第一、环境安装
当然是环境,安装netcore sdk或netcore 运行时。
具体可以参考微软的文章,还是挺简单的:[在 CentOS 上安装 .NET Core SDK 或 .NET Core 运行时]( https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos)
装好以后,就是将项目打包放到自己喜欢的文件夹里就好了。
接着通过,dotnet xxx.dll运行起来看看。那么文件就会按照你配置的端口运行起来了。
第二、安装nginx
安装nginx的作用当然是反代,让外网可以访问到你的项目。
由于我的服务器上本来就装好了nginx,所以这一步我就不多说了,园子里应该也有很多详细的文章。
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端口进行反代。当然端口可以自定义,具体的参考dotnet cli的命令即可。
第三、守护进程 supervisor
如果不做这一步就结束的话,那么你关了远程连接的小黑框,你的项目也会跟着关闭。
1.安装supervisor
yum install supervisor
2.修改supervisord.conf的配置文件
[include]
files = /etc/supervisor/conf.d/*.ini
修改成这样即可,这只是一个读取进程配置文件的路径,意思就是读取 /etc/supervisor/conf.d/路径下所有的.ini文件,所以对路径不强求,自己定义即可,只需将.ini文件放在对应的路径下。
3.编辑配置文件 路径在 /etc/conf.d 下面创建一个xxx.ini的文件,以下是内容
[program:DemoCore] #DemoCore是进程名,可自定义
command=dotnet Demo.dll #用执行的命令
directory= /home/project/publish/ #执行命令的文件夹
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 #环境变量
stopsignal=KILL
stopwaitsecs=10
4.启动服务
supervisord -c /etc/supervisord.conf
以上,netcore项目就成功部署在了centos7服务器上了。
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)