按顺序安装即可
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.105
dotnet ApplicationName.dll
到这里,centos上就能运行dotnet程序了,端口默认为5000;然而,只是在linux本地能运行,外网还不能访问。这时候,我们还需要将我们服务器上的5000端口映射到80端口上!需要用到Nginx!
以下三个命令完成Nginx的安装
curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx
当终端上显示“完毕”,Nginx就安装完毕了
systemctl start nginx
systemctl enable nginx
Nginx启动后,试着用浏览器访问centos的公网地址,如果出现以下界面,可以跳过下面的“防火墙配置”:
firewall-cmd --zone=public --add-port=80/tcp --permanent //开放80端口
systemctl restart firewalld //重启防火墙
修改 /etc/nginx/conf.d/default.conf 文件
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;
}
}
改完之后,重启Nginx使其立即生效
nginx –s reload
这个时候,通过命令dotnet xxx.dll启动我们的dotnet应用后,访问服务器公网地址(80端口),就可以访问到我们的应用了。
通过上边的配置,我们的程序虽然能跑起来了,但是,其会一直占据我们的终端。这个时候,我们需要安装守护程序,让其在后台运行。
逐条运行以下命令安装
yum install python-setuptools
easy_install supervisor
为守护程序添加一个用于保存配置文件的目录
mkdir /etc/supervisor
输出守护程序的默认配置文件到刚刚新建的目录
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改默认配置文件supervisord.conf 将
supervisorctl reload
在/etc/supervisor/目录下,新建一个conf.d目录,在conf.d目录下新建一个配置文件,命名为WebApplication1.conf,并写入下面的内容
[program:WebApplication1]
command=dotnet WebApplication1.dll ; 运行程序的命令
directory=/home/wwwroot/WebApplication1/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
根据自己的情况修改,其中command后边的参数,为我们需要后台执行的命令,这里输入dotnet+程序名, directory参数为你程序所在的目录.修改完之后保存!使用以下命令,使配置立即生效。
supervisord -c /etc/supervisor/supervisord.conf
如果,运行该命令报错,不用理会,说明我们的进程已经在运行了!我们可以用以下命令查看
ps -ef | grep WebApplication1
出现以下结果,说明dotnet程序正在后台运行
在/usr/lib/systemd/system/目录中,新建一个“supervisord.service”文件,写入以下内容并保存:
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
执行以下命令,使supervisord.service生效:
systemctl enable supervisord
验证守护程序时候开机自启:
systemctl is-enabled supervisord