.NET CORE 部署到 CentOS7全部过程

从WIN系统 转到linux系统来,简直让我放弃,抓狂,我就想部署个网站怎么那么多问题。。。不过还是赚钱要紧。

下面记录一下 从头到尾 怎么部署到 centos7entos7上面去

首先你要有台linux系统及其 centos (好吧,这是废话,阿里云随便花几十块买一个试试)

1. 安装图形界面。这很WIN。 我前面说了,所以图形界面救了我的命 至于为什么要这样,别问我,问我就就告诉你3部曲

yum groups install 'MATE Desktop' # 安装图像界面
yum groups install 'X Window System' # 图像系统 我也不知道怎么接受,没这个,你进不去
systemctl set-default graphical.target #设置图像界面为启动项
reboot  #重启

2.安装nginx (编译安装我就不说了,度娘一大堆资料)

1. 安装
yum install -y nginx

2. 启动nginx并设置开机启动
systemctl start nginx

systemctl enable nginx

3. 验证nginx是否启动
ps -ef | grep -v grep | grep nginx

4. 查看nginx配置文件
vi /etc/nginx/nginx.conf

5. 对于yum安装的nginx来说,要想使配置文件的修改生效,需要重启nginx,运行以下命令:
systemctl restart nginx

3.上传文件配置上传项目文件会用到。那个 FTP我搞的头大,WIN下面安装一个软件 点点就好了

yum -y install lrzsz

上传文件命令
rz

4.下载xshell 工具 (我在这里下载的 https://www.netsarang.com/zh/) 当然这个工具看自己了 用WIN10自带也可以

5.在 centos7上安装 .NETCORE SDK  一路 y 就行了,别问我为什么,y就行了,我也不知道

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


添加dotnet产品密钥命令

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

6. .NET CORE 发布

1.进入对应的目录
cd /xxxxx

2. 用dotnet 命令启动试试 dotnet [xxxx].dll  xxx是你生成的项目*.dll 后面是更改端口,因为默认是 5000 https 5001 显然不用它的是不是

dotnet WebApplication1.dll --server.urls "http://*:1818"

好了。本地访问下,咦 是可以了,但是我关掉 xshell  就嗝屁了,这怎么行呢。好了看下面。(官方也有用服务,但是貌似我没整好。)

那用守护进程来 nginx代理 

好。我们先来用守护进程 让它永久启动先

7.用守护进程让 .netcore网站一直在启动状态

1.安装supervisor
 yum install supervisor

2.启动服务 看配置文件地址 这里自己注意下,看你的安装配置文件在里,错了会启动失败,前面有图形界面了可以自己查看
supervisord -c /etc/supervisord.conf

3.编辑配置文件 路径在 /etc/supervosprd.d 下面创建一个随便你自己取名的 .ini 比如

netcore.ini 内容是下面的

[program:DeployLinux]   #DeployLinux  为程序的名称
command=dotnet /apps/api/api/xxx.dll --urls="http://localhost:1818" #需要执行的命令
directory=/website/test #命令执行的目录
environment=ASPNETCORE_ENVIROMENT=Production #环境变量
user=root #用户
stopsignal=INT 
autostart=true #是否自启动
autorestart=true #是否自动重启
startsecs=3 #自动重启时间间隔(s)
stderr_logfile=/var/log/ossoffical.err.log #错误日志文件
stdout_logfile=/var/log/ossoffical.out.log #输出日志文件

仔细看看,commadn是不是跟上面那个doten xxxx.dll很相似啊。对就是这样,不解释了

好了,我们关了 shll,呦 ,呦 , 呦 ,可以访问了啊。不得了了了。 真鸡儿费神,部署个网站要上天了,然鹅你发现,重启后又不行了。我丢,原来没设置重启服务器  自启守护软件

启动设置

--------------配置自启服务

路径 /etc/systemd/system 

自己创建一个 sv-auto.service (这个文件名称自己创建)

服务文件内容填写

[Unit]
Description=sv auto #描述
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf 
ExecStop=/usr/bin/supervisord shutdown
ExecReload=/usr/bin/supervisord reload 
killMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

--设置开机自启命令
systemctl is-enabled [这个是你的文件名]

systemctl is-enabled sv-auto

8.Nginx部署的配置文件,因为默认,它会默认找一个目录,在这个目录新建自己的配置文件 比如

server {
    listen        80;
    server_name   example.com *.example.com; #没域名删掉可以
    location / {
        proxy_pass         http://localhost:1818;
        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;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

  

好了。这样就正在达到了可以真正 可访问的站点了, 如果在 WIN服务版本下,远程连接-安装IIS-新建项目-指向目录-完事了

从WIN过来,一下真的很难接受,为什么那么麻烦,可定很多人说弄弄脚本什么的。我们又不是专业的运维 没太多时间花这世界上,很多时候我们需要更快的解决问题,工具本来就是为了解决问题,而不是制造问题

最后放一下,微软自己官网的教程

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1

下一步写写容器怎么部署。

原文地址:https://www.cnblogs.com/missliu/p/11078084.html