.Net Core项目部署到Linux系统(CentOS 7)
王递杰 2021年6月23日 .Net
window下先发布,生成publish文件夹
后面我们会把这个publish目录里面的内容放到我们linux系统上
linux系统安装.Net Core SDK
因为我的程序是.net core 3.1,所以这里装3.1的SDK,要根据自己的程序安装相应的版本
官方文档
https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
将Microsoft 包签名密钥添加到受信任密钥列表
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装SDK
sudo yum install dotnet-sdk-3.1
sudo yum install aspnetcore-runtime-3.1
安装成功后 输入 dotnet --version 查看是否有版本号
把发布好的项目publish文件放到linux系统中
进入linux系统中publish文件夹下,输入命令:dotnet 你项目的名称.dll
如果看到localhost:5000 说明项目已经成功启动了
在linux中的浏览器中打开 http://localhost:5000 即可看到页面。
如果是虚拟机想在宿主机中查看,则在宿主机中输入虚拟机ip:5000.
因为localhost是内网地址,因此启动时需要加上--urls参数
dotnet WebTest.dll --urls http://*:5000
关闭防火墙,如果不想关闭,可以将5000端口添加到防火墙中
firewall-cmd --zone=public --add-port=5000/tcp --permanent
permanent:这个参数表示永久存在,否则重启防火墙配置就丢失了。
然后重启防火墙:firewall-cmd --reload
配置nginx作为反向代理
因为http://asp.net core默认是监听5000端口的,所以使用nginx作为反向代理服务器将80端口和443端口的请求发送到5000端口。
Nginx默认开启80端口,我们要把80端口添加到防火墙中,添加完以后重启防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent
安装nginx之后,修改配置文件
server{
listen 80;
server_name #你网站的名字#;
rewrite ^https://$http_host$requerst_uri? permanent; #重写http为https#
}
server{
listen 443 ssl;
server_name www.wavedeng.com;
client_max_body_size 10M;
ssl_certificate #你的crt证书所在位置;
ssl_certificate_key #你的ssl key所在位置;
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;
}
}
上面的第一个server是用来重写url将http请求重定向到https。若没有配置https直接舍弃掉第二个server,将第二个server里的location的内容复制到第一个sever里面,并删除rewrite里的内容。
相关博客
评论
随笔分类
Powered by .NET 6.0 陕ICP备2020018176号-4