menu 极光萝卜
部署.NET Core应用到CentOS7
folder_special 笔记    access_time 2016-11-12   remove_red_eye 2120   comment 0

新部署方式(18/01/31更新):http://www.ijglb.com/post/51

-----------------------------------------------------------------------------------

做个笔记:

服务器:阿里云CentOS7 64位

工具:Xshell、FileZilla

.net core版本:1.0

-----------------------------------------------------------------------------------

首先将应用程序发布,在cmd下进入项目目录,使用命令:

dotnet publish –c release

1.png


安装.NET Core SDK For CentOS7,下为微软提供的安装方法:

sudo yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
安装后可以使用dotnet --info来看看是否安装成功

4.png

接下来将之前发布的文件上传至相应的文件夹,我这里使用的FileZilla上传文件。

上传完成后执行.dotnet .../.../.../应用.dll 看看是否能够成功运行

2.png


这时候应用还无法访问到,我们需要一个WEB容器来转发。我原本已经装有LNMP,这里直接添加一个虚拟主机(步骤省略....)

接下来配置nginx对应用的转发,这里给出我的配置:

server
    {
        listen 80;
        #listen [::]:80;
        server_name xymusic.ijglb.com;

        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;
        }
    }
配置好后重启LNMP使之生效。

接下来到应用目录,执行dotnet XXX.dll命令启动,访问域名就能看到应用了。

考虑到应用运行在shell之下,退出shell后会跟着一起被关闭,在百度相关资料后我选择Supervisor来守护应用的进程。

安装Supervisor:

yum install python-setuptools
easy_install supervisor
这里我卡了好一会儿,各种报错,无法安装。后来使用yum update更新了一下才成功安装。

配置Supervisor:

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改supervisord.conf文件,将文件尾部最后两行改为:

[include]
files = conf.d/*.conf
这里注意,原本两行前面都有;注释的,我一开始没注意到,第一行前面的;没去掉,导致后面一直奇怪怎么没有效果。

配置对应用的守护:

[program:XYMusic]
command=dotnet XYMusic.dll ; 运行的命令
directory=/home/wwwroot/xymusic.ijglb.com/ ; 命令执行目录
autorestart=true ; 自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志
environment=ASPNETCORE_ENVIRONMENT=Production ; 环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

将文件储存为XYMusic.conf拷贝到/etc/supervisor/conf.d/目录下,运行supervisord


systemctl start supervisord.service
ps -ef | grep XYMusic
QQ截图20161112015804.png


看到有相应的进程则成功了。

接下来把supervisord加入开机启动:


systemctl enable supervisord.service
至此.NET Core应用部署完成
local_offer centos C# ASP.NET .netcore