您现在的位置是:首页 > .Net > .Net Core项目部署到Linux系统(CentOS 7)

.Net Core项目部署到Linux系统(CentOS 7)

王递杰 2021年6月23日 .Net

window下先发布,生成publish文件夹

1.jpg

后面我们会把这个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 查看是否有版本号

2.jpg


把发布好的项目publish文件放到linux系统中


进入linux系统中publish文件夹下,输入命令:dotnet 你项目的名称.dll

如果看到localhost:5000 说明项目已经成功启动了

3.jpg

在linux中的浏览器中打开 http://localhost:5000  即可看到页面。

4.jpg

如果是虚拟机想在宿主机中查看,则在宿主机中输入虚拟机ip:5000.

因为localhost是内网地址,因此启动时需要加上--urls参数

dotnet WebTest.dll --urls http://*:5000

5.jpg


关闭防火墙,如果不想关闭,可以将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里的内容。


评论

评论插件