博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

net core 6 部署到ubuntu

Posted on 2023-04-20 23:32  火冰·瓶  阅读(155)  评论(0)    收藏  举报

一、安装dotnet SDK

 1.更新源

sudo apt-get update;

2.启用 Microsoft PPA

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb 

3.安装.NET Core SDK

sudo apt install apt-transport-https 
sudo apt update 
sudo apt install dotnet-sdk-6.0 

4.检查版本确认安装结果

dotnet --version

5.将项目发布,并上传到ubantu

6.直接运行

dotnet xxx.dll   #默认端口 5000
dotnet xxx.dll --urls=http://*:5051  #指定端口

#启动站点,自定义端口号,运行环境
dotnet Core50Test.dll --urls="http://*:8081;http://*:8082" --environment=Development


7.也可以在appsettings.json中指定端口

  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:50050"
      }
    }
  }
}

  

  

 

 

二、安装并配置pm2

1.更新源

sudo apt-get update

2.安装 NodeJS

sudo apt install nodejs

3.安装npm

sudo apt install npm

4.安裝 PM2

npm install pm2 -g

5.设置pm2

//生成开机启动 pm2 服务的配置文件
pm2 startup
  
//保存服务
pm2 save
  
//启动进程/应用
pm2 start bin/www
pm2 start app.js
pm2 start test.sh
pm2 start "dotnet TestUbuntu.dll --urls http://*:8090" --name test     //设置启动net core网址、设置端口号为8090,并设置pm2进程名称为test
  
//启动进程/应用并命名进程
pm2 start app.js --name wb123
  
//结束进程/应用
pm2 stop www
  
//结束所有进程/应用
pm2 stop all
  
//删除进程/应用
pm2 delete www
  
//删除所有进程/应用
pm2 delete all
  
//列出所有进程/应用
pm2 list
  
//查看某个进程/应用具体情况
pm2 describe www
  
//查看进程/应用的资源消耗情况
pm2 monit
  
//查看pm2的日志
pm2 logs
  
//若要查看某个进程/应用的日志,使用
pm2 logs www
  
//重新启动进程/应用
pm2 restart www
pm2 restart [进程名] | [进程id]  // 重启效果 短时间内进程无效
pm2 reload [进程名] | [进程id] // 重载效果 会保持进程在线 

//内存达到30M时,重启进程
pm2 start test.sh --max-memory-restart 300M    

//重新启动所有进程/应用 
pm2 restart all 

//查看某一个进程的详细信息 
pm2 show [进程名] | [进程id]

  

三、安装并配置nginx

apt-get install nginx

如果需要使用ssl,则需要编译后安装,详见:https://www.cnblogs.com/fireicesion/p/17338966.html

user  root;     #建议修改,否则容易出现静态文件禁止访问
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;

##############################################################################
    server {
    listen 80;
    server_name t1.xxxx.net;
    location / {
        proxy_pass http://localhost:50000;   #反向代理
        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;
		}
	}
	
##############################################################################


	server{
		listen 80;
		server_name bigdata.xxxx.net;
		rewrite ^(.*)$ https://${server_name}$1 permanent; #设置http自动转发https
	}
    server {
    listen 443 ssl;
    server_name bigdata.xxxx.net;
    ssl_certificate      /root/ssl/xxxx.pem;     #证书路径
    ssl_certificate_key  /root/ssl/xxxx.key;     #证书路径

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
        proxy_pass http://localhost:50001;   #反向代理
        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;
		}
	}

#################################################################################


	server{
		listen 80;
		server_name www.aabbcc.com aabbcc.com;
		rewrite ^(.*)$ https://${server_name}$1 permanent; #设置http自动转发https
	}
    server {
        listen 443 ssl;
        server_name  www.aabbcc.com;
		ssl_certificate      /root/ssl/aaa/pem.pem;
        ssl_certificate_key  /root/ssl/aaa/key.key;
		ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
		root   /root/wwwroot/projectname;    #静态文件路径
        index  index.html index.htm;         #静态文件首页
	}

}