CentOS上使用nginx运行.net core web应用
安装.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:
发布web站点到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