Linux发布.net Core应用

准备一个Linux服务器,Windows系统安装ssh连接工具,我是用的FinalShell

FinalShell官网下载 

下载安装成功,点击左上角新增一个连接就可以连接上Linux服务器了

Linux发布.net Core应用_第1张图片

要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。运行以下命令:

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'

安装 .NET 所需的组件,然后安装 .NET SDK。运行以下命令:

sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1  #根据项目版本安装

因为上传到服务器很多时候都是压缩文件,安装解压缩软件unzip

yum install -y unzip zip

Visual Studio给core项目发布文件系统,给文件压缩后传到服务器解压

dotnet /home/wwwroot/WebApplication1.dll    #WebApplication1.dll是项目dll

项目启动成功会如下显示 

Hosting environment: Production
Content root path: /root/.dotnet/dotnet-apps/demo1/CoreDemo1
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

由于这是本地启动的只能在本地访问,所以使用了nginx配置代理

1:添加 Nginx 存储库
sudo yum install epel-release
2:安装 Nginx
sudo yum install nginx
3. 启动 Nginx
sudo systemctl start nginx


其他命令:
systemctl enable nginx  #设置开机启动
systemctl disable nginx   #禁止开机启动
systemctl status nginx     #查看运行状态
systemctl restart nginx    #重启服务

安装启动后,可以在当前服务器地址访问到nginx页面,接下来就是配置nginx代理了

首先拿到Nginx默认配置文件/etc/nginx/nginx.conf把默认80端口转发配置server节点用#符注释掉。

第一行user  nginx改为user  root(由于权限不足访问静态文件,所以改为root)

Linux发布.net Core应用_第2张图片

然后,我们新建一个配置文件netcore.conf,内容如下:

server {
    listen 80;

     #静态文件访问路径
	location ~.*(js|css|png|gif|jpg)$ {
        root /root/.dotnet/dotnet-apps/demo1/CoreDemo1/wwwroot/;
    }
    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 的配置加载目录/etc/nginx/conf.d,最后执行命令nginx -s reload重载 Nginx 配置,使其生效。

就可以在外网用服务器地址访问网站了,但是现在是用ssh工具启动的,断开网站就断开了

所以安装Supervisor     supervisord官网

联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:
yum install python-setuptools

执行如下命令安装 Supervisor:

easy_install supervisor

新增配置文件夹和文件
mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

 修改supervisord.conf文件,将文件尾部的配置为

    [include]
    files = /etc/supervisor/conf.d/*.conf     新增这个conf.d文件夹(这个路径下的文件就是你要启动的项目,可以多个)

本地新增编辑好一个conf文件,上传到/etc/supervisor/conf.d/目录下

[program:WebApplication1]                        ;自定义进程名称
command=dotnet WebApplication1.dll               ;程序启动命令
directory=/home/wwwroot                         ;命令执行的目录
autostart=true                                  ;在Supervisord启动时,程序是否启动
autorestart=true                                ;程序退出后自动重启
startretries=5                                  ;启动失败自动重试次数,默认是3
startsecs=1                                     ;自动重启间隔
user=root                                       ;设置启动进程的用户,默认是root
priority=999                                    ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/var/log/WebApplication1.err.log  ;标准错误日志
stdout_logfile=/var/log/WebApplication1.out.log  ;标准输出日志
environment=ASPNETCORE_ENVIRONMENT=Production   ;进程环境变量
stopsignal=INT                                  ;请求停止时用来杀死程序的信号
supervisord -c /etc/supervisor/supervisord.conf    #启动supervisord


ps -ef | grep WebApplication1            #查看supervisord下运行的进程

 

你可能感兴趣的:(配置文件)