centos 7 安装 netcoresdk 和Nginx 并发布netcore

微软官网的yum安装:

打开linux终端程序

 

netcore sdk 地址https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current

 

选择Linux发行版本

在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库,并安装所需的依赖项。每台机器只需执行一次。打开终端并运行以下命令:

 

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

 

 

 

Install .NET Core Runtime on Linux CentOS / Oracle - x64

Add the dotnet product feed

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

 

Install the .NET Runtime

sudo yum update

sudo yum install aspnetcore-runtime-2.2

 

校验是否安装成功

dotnet --version

 

 

手动安装

 

3.2.1、 离线包tar.gz安装方法

 

https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.2.203-linux-arm64-binaries

 

创建目录:mkdir -p $HOME/dotnet 

 

上传文件:dotnet-sdk-2.2.203-linux-x64.tar.gz 文件在$HOME/dotnet 目录中

 

cd $HOME/dotnet

 

解压到目录:tar zxf dotnet-sdk-2.2.203-linux-x64.tar.gz -C $HOME/dotnet

 

export DOTNET_ROOT=$HOME/dotnet 

 

export PATH=$PATH:$HOME/dotnet

 

注意当前环境变量设置只影响当前会话终端。所以我们需要创建软链接方式来设置环境变量。方法如下:

 

1、su切换到root用户。

 

2、创建软链接执行:ln -s $HOME/dotnet/dotnet /usr/local/bin

 

 

使用yum安装Nginx

当使用以下命令安装Nginx时,发现无法安装成功

yum install -y nginx

需要做一点处理。

安装Nginx源

执行以下命令:

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装该rpm后,我们就能在/etc/yum.repos.d/ 目录中看到一个名为nginx.repo 的文件。

安装Nginx

安装完Nginx源后,就可以正式安装Nginx了。

yum install -y nginx

Nginx默认目录

输入命令:

whereis nginx

 

 

即可看到类似于如下的内容:

 

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx

以下是Nginx的默认路径:

(1) Nginx配置路径:/etc/nginx/

(2) PID目录:/var/run/nginx.pid

(3) 错误日志:/var/log/nginx/error.log

(4) 访问日志:/var/log/nginx/access.log

(5) 默认站点目录:/usr/share/nginx/html

事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到。

 
常用命令

(1) 启动:

nginx

(2) 测试Nginx配置是否正确:

nginx -t

(3) 优雅重启:

nginx -s reload

(4) 查看nginx的进程号:

ps -ef |grep nginx

(5)nginx服务停止

nginx -s stop

kill -9 pid

 

 

发布网站,配置服务和防火墙
  1. 发布网站后将发布后的网站上传到服务器。
  2. 使用dotnet myapp.dll启动网站。
  3. 在浏览器中打开网站的地址,检测网站正常启动并可访问。
  4. 如果需要外网访问需要在防火墙上开放相应的端口。具体操作:

#添加80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

#删除防火墙端口:

firewall-cmd --zone=public --remove-port=12345/tcp --permanent

#重新加载防火墙:

firewall-cmd --reload

#重启防火墙:

systemctl stop firewalld systemctl start firewalld

 

这个时候根据ip 就可以访问了

 

然后需要将发布的网站配置为服务和自动启动

 

#新建配置文件

touch /etc/systemd/system/myapp.service

#编辑配置文件:

 

 

[Unit]

Description=restapi.service 

 

[Service]

WorkingDirectory=/home/liaokui/mbapi

ExecStart= /usr/bin/dotnet /home/liaokui/mbapi/MB.Rest.dll

Restart=always

RestartSec=10  # Restart service after 10 seconds if dotnet service crashes

SyslogIdentifier=restapi

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

 

[Install]

WantedBy=multi-user.target

 

 

 

 

#服务开机启动

systemctl enable restapi.service

 

#启动服务

systemctl start restapi.service

 

#查看服务状态

systemctl status restapi.service

 

有个问题是我的项目使用的配置文件路径:Path.Combine("Config", "Nlog.config") 在发布的时候定向到root/config了 所以把这个文件夹复制到root文件夹里面就好了

posted @ 2019-07-31 16:48  煤炭g  阅读(481)  评论(0编辑  收藏  举报