asp.net core 3.1 发布到Ubuntu(nginx、Supervisor)

2021-05-30 13:02

阅读:520

标签:header   auto   site   手动   没有   保存   rgba   cat   环境   

一.Ubuntu环境搭建

1. 安装.NET SDK or .NET Runtime

先为Ubuntu安装运行时,一般情况下安装运行时即可

.NET版本 Snap包
5.0 dotnet-runtime-50
3.1(LTS) dotnet-runtime-31
3.0 dotnet-runtime-30
2.2 dotnet-runtime-22
2.1(LTS) dotnet-runtime-21

选择对应版本即可。

sudo snap install dotnet-runtime-31 --classic

 

也可以安装SDK

.NET版本 Snap包或通道
5.0 5.0latest/stable
3.1 (LTS) 3.1lts/stable
2.1 (LTS) 2.1
sudo snap install dotnet-sdk --classic --channel=3.1

2. 安装Nginx

Nginx好处是为了反向代理,均衡负载

sudo apt-get update
sudo apt-get install 
sudo service ngnix start

Nginx卸载:

1.卸载nginx,及其配置文件

sudo apt-get --purge remove nginx

2.自动全部移除不使用的软件包

sudo apt-get autoremove

3.列出与nginx相关的软件

dpkg --get-selections|grep nginx

4.删除查询出来的与nginx相关的软件,我这里只是举个例子: 假如查询出来的有这3个

#只要出现nginx的逐个删除即可
sudo apt-get --purge remove nginx
sudo apt-get --purge remove nginx-common
sudo apt-get --purge remove nginx-core
#删除以后再执行
dpkg --get-selections|grep nginx
#检查没有后即可重新安装
sudo apt-get update
sudo apt-get install nginx

 

安装成功后会在浏览器输入http://本机ip 即可显示该页面

技术图片

3.安装Supervisor守护程序

Supervisor守护程序能自动监控进程,不再需要手动处理asp.net core手动启动,而且关闭后还会后台运行。

sudo apt-get update
sudo apt-get install supervisor

 

到此需要的环境基本安装好了。

二.运行web项目

在ASP.NET Core项目中涉及到注意事项,

1.服务器连接ip

例如MongoDB默认是127.0.0.1或localhost,所以得修改MongoDB配置文件为0.0.0.0即可

2.涉及到Core项目中你的Url监听

Core只会监听http://localhost:5000http://localhost:5001

涉及的方法

  • UseUrls() - 在Program.cs配置程序监听的URLs

  • 环境变量 - 使用DOTNET_URLS或者ASPNETCORE_URLS配置URLs

  • 命令行参数 - 当使用命令行启动应用时,使用--urls参数指定URLs

  • 使用launchSettings.json - 使用applicationUrl属性来配置URLs

  • KestrelServerOptions.Listen() - 使用Listen()方法手动配置Kestral服务器监听的地址

1.UseUrls()

首先,最简单的方式,当配置IWebHostBuilder时,你可以使用UseUrls()方法硬编码绑定的URLs(Demo用)

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }
?
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup();
                webBuilder.UseUrls("http://localhost:5003", "https://localhost:5004");
            });
}

 

3.Xftp上传到服务器上

cd到该目录下,启动web项目

dotnet 项目.dll

这时可以去看看项目是否运行成功,curl http://ip:5000

4.配置Nginx

安装好后进入目录,打开default文件并修改为一下的内容

cd /etc/nginx/sites-available
sudo vim default

 

server {
        listen 80;
        listen [::]:80;
        #防止css/js不加载
        location ~ .*\.(js|css)$ {
             proxy_pass http://127.0.0.1:5000;
         }
?
        location / {
        #绑定跳转的ip
        proxy_pass http://192.168.14.130: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;
        try_files $uri $uri/ =404;
        }
}

 

Linux编辑命令

vim Program.cs  //打开或新建Program.cs文件
?
i  //进入编辑模式
?
Esc键  //退出编辑模式
?
yy  //复制光标所在行
?
5yy  //复制光标起后5行
?
p //粘贴
?
dd  //删除光标所在行
?
5dd  //删除光标起后5行
?
u   //撤销操作
?
:q!  //不保存并退出
?
:wq  //保存并退出

 

编辑好后重启Nginx来应用配置

sudo nginx -t
sudo nginx -s reload

 

5.配置守护进程Supervisor

创建配置文件

cd /etc/supervisor/conf.d
sudo vim test.conf

 

[program:hwappService]
command=dotnet /usr/www/Czar.Cms.Admin.dll  #要执行的命令
directory=/usr/www/  #dll所在的文件夹
autostart=true
autorestart=true
stderr_logfile=/var/log/sampleMicroService.err.log  #错误日志
stdout_logfile=/var/log/sampleMicroService.out.log  #输出日志
user=root  #用户
stopsignal=INT

 

重新启动Supervisor应用配置

sudo service supervisor restart

 

测试,重启Ubuntu后,网站不用手动打开即可访问。正常

有错留言再改这只是Demo。

End.

asp.net core 3.1 发布到Ubuntu(nginx、Supervisor)

标签:header   auto   site   手动   没有   保存   rgba   cat   环境   

原文地址:https://www.cnblogs.com/luomilande/p/14673689.html


评论


亲,登录后才可以留言!