Linux 搭建 dotnet sdk 环境
- 从微软官网下载相应的版本,
dotnet-sdk-5.0.102-linux-x64.tar.gz
- 创建指定的目录
/root/opt/dotnet
,并解压到指定的目录 /root/opt/dotnet
。
1
| mkdir -p /root/opt/dotnet && tar zxf dotnet-sdk-5.0.102-linux-x64.tar.gz -C /root/opt/dotnet
|
- 配置 dotnet 环境变量
1
| ln -s /root/opt/dotnet/dotnet /usr/bin/dotnet
|
- 查看 dotnet
- 发布 dotnet
1
| dotnet publish -c Release
|
- 不需要安装 runtime 发布,并发布成单个文件
1
| dotnet publish -c Release -r win-x64 --sc true /p:PublishSingleFile=true
|
-c|--configuration
指定配置文件
-r|--runtime
指定 rid 标识 NET RID 目录
-sc|--self-contained
是否需要独立部署,是否需要安装 runtime
/p:PublishSingleFile=true
是否发布成单个文件
此时单个文件包含了 runtime ,可能文件会很大
- 不需要安装 runtime 发布,不合并成单个文件
1
| dotnet publish -c Release -r win-x64 --sc true
|
此时会产生很多运行时的文件
部署 dotnet web api
- 创建 webapi 目录,如:
mkdir /root/demo_api
- 将编译好的 webapi 文件放至
/root/demo_api
- 配置 Production 环境
appsettings.Production.json
- 添加辅助配置文件[可选]
hosting.json
- 启动命令
1 2 3 4 5
| cd /root/demo_api dotnet demo_api.dll
# 带环境变量临时启动 ASPNETCORE_ENVIRONMENT=Production dotnet demo_api.dll
|
配置 webapi 的开机启动
添加开机启动的 service 文件
1 2
| cd /lib/systemd/system vim demo_api.service
|
配置开机启动:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [Unit] Description="demo api, use dotnet core 5.0"
[Service] Type=simple WorkingDirectory=/root/demo_api ExecStart=/root/opt/dotnet/dotnet demo_api.dll #Restart=always #RestartSec=10 PrivateTmp=true User=root Environment=ASPNETCORE_ENVIRONMENT=Production
[Install] WantedBy=multi-user.target
|
开机启动命令:
1 2 3 4 5 6
| systemctl daemon-reload // 创建或更新linux服务配置文件修改后必须运行此命令重新加载守护进程 systemctl status demo_api.service // 查看服务状态 systemctl start demo_api.service // 启动服务 systemctl stop demo_api.service // 停止服务 systemctl enable demo_api.service // 设置开机启动 journalctl -fu demo_api.service // 进入服务,查看状态
|
其他 linux 常用命令
nginx 配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| user root; worker_processes 4;
error_log off; pid /run/nginx.pid; events { worker_connections 65535; } http { upstream demo_api{ ip_hash; server localhost:21021; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 8001; server_name localhost; proxy_hide_header X-Frame-Options;
location /demo_api/ { proxy_pass http://demo_api/;
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
charset utf-8; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } }
|
1 2 3 4 5 6
| // 设置开机启动 systemctl enable nginx.service // 启动 systemctl start nginx.service // 停止 systemctl stop nginx.service
|
linux zip 解压
zip 压缩
- 将当前文件和文件夹内容压缩,
myfile.zip
文件。-r
表示递归压缩子目录下所有文件.
1
| zip -r myfile.zip ./myfile
|
unzip 解压
- 将
myfile.zip
文件解压到./root/myfile/
文件夹下
1
| unzip -O CP936 index.zip -d ./root/myfile/
|
指定中文编码-O CP936