CentOS上使用nginx运行.net core webapi

CentOS上使用nginx运行.net core webapi

安装.NET Core

参考:https://www.microsoft.com/net/learn/get-started/linuxcentos

按步骤执行以下命令:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

这里写图片描述

sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.0.3

执行完以上命令后,可使用dotnet --version 查看当前.net core版本:

这里写图片描述

安装Ningx

sudo yum install epel-release
sudo yum install nginx
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

启动nginx:

service nginx start

访问虚拟机,如下如,则成功安装并启动nginx:

这里写图片描述

发布webapi到centos

这里写图片描述

如图,成功吧webapi上传到centos home/NetCore文件夹下。
然后输入dotnet yourappname.dll运行webapi站点,如下:

这里写图片描述

配置nginx反向代理

配置如下,只需要配置如下内容,其他不需要修改,吧80端口转发到5000即可:
这里写图片描述

本机成功访问:

这里写图片描述

一个很难找的问题

在配置完nginx80端口转发到5000后,发现一个问题。
问题描述:
在CentOS上吧.net core webapi站点上传到centos,在putty中curl http://localhost:5000可正常返回数据,但是当我在我的电脑上访问虚拟机192.168.111.135是返回502错误,没有映射到5000端口,如果不修改nginx配置文件,访问192.168.111.135是正常的。
原因:SELinux配置问题。
解决:关闭SELinux。
输入:sestatus,如果SELinux status: enabled ,表示开启,输入vi /etc/selinux/config 修改配置:SELINUX=disabled。
参考:https://segmentfault.com/q/1010000006610283

猜你喜欢

转载自blog.csdn.net/zhaobw831/article/details/78632675
今日推荐