nginx部署asp.net core

1,先安装dotnet,根据下面的链接进行下载

https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

2,安装dotnet

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.410-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

上面的链接只能在本终端里执行,换个终端不行,修改环境变量,使其在每个终端都能使用,在/etc/profile末尾添加下面两行

export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet

然后运行下面命令,使其环境变量有效

source /etc/profile

在终端运行,查看一下

dotnet 

3,创建web项目

dotnet new webapp -o aspnetcoreapp
cd aspnetcoreapp
dotnet watch run

命令行界面指示应用已启动后,浏览至 https://localhost:{port},其中 {port} 是使用的随机端口。

4,由于asp.net core 会强制使用https,需要证书,否则会报下面错误

System.InvalidOperationException:“Unable to configure HTTPS endpoint.异常处理
运行下面的代码

dotnet dev-certs https
sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM
sudo update-ca-certificates

这样网站就可以运行了,但是会提示证书不安全。
继续运行以下命令信任证书。

dotnet dev certs https--trust

清理开发人员证书的命令是:
dotnet dev-certs https --clean
详细请看文档:
asp.net core 文档

5,打包

在开发环境上运行

dotnet publish --configuration Release

打好的包在项目的bin/Release/net6.0/publish项目里
运行项目

dotnet aspnetcoreapp.dll &

&此符号是为了让后台运行,关了终端,进程仍然存在,如果想杀死,运行以下命令

ps -ef | grep dotnet
kill -9 进程号

6,配置nginx

server
{
listen 80;
server_name www.net.com  net.com;

location / {
        proxy_pass https://localhost:5001;
        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_pass https://localhost:5001;是为了反向代理服务器Kestrel,Kestrel 是一个跨平台的适用于 Kestrel。 Kestrel 是包含在 ASP.NET Core 项目模板中的 Web 服务器,默认处于启用状态。

https://localhost:5001就是启用dotnet aspnetcoreapp.dll时,出现

7,配置完毕之后,重启nginx

sudo nginx -s reload

浏览器进行访问

www.net.com进行查看

8,asp.net core 默认的是http://localhost:5000和https://localhost:5001端口,如果想改端口,在Program.cs添加

builder.WebHost.UseUrls("https://127.0.0.1:5002");

上面的代码必须在var app = builder.Build();之前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值