.NET Core部署到CenterOS 7
(1)安装CenterOS7
(2)修改 vi /etc/sysconfig/network-Scripts/ifcfg-ens33 的值为yes,退出保存,重启 service network restart
(3)安装 sudo yum install net-tools
(4)输入ifconfig查看IPi地址,用Putty工具连接;
(5)开始安装nginx
# yum install epel-release
# yum install nginx
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload
官方地址:
https://www.tecmint.com/install-nginx-on-centos-7/
安装完成后,客户端访问虚拟机IP地址:会出现Ngxin的界面:
(6)安装 .NET CORE SDK
#在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项。 这只需要每台机器完成一次。
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
# 安裝SDK
sudo yum install dotnet-sdk-2.1
# 运行时
sudo yum install aspnetcore-runtime-2.1
(7)创建core项目
在命令行执行 dotnet new --help
命令查看创建帮助
然后执行 dotnet new webapi -n helloCore
创建webapi项目
执行 cd helloCore 命令进入helloCore文件夹
执行 dotnet run 运行webapi,可以看到现在webapi运行在5000端口
这时候访问http://192.168.110.129:5000/无法访问,原因是端口没有打开
这时候程序已经运行了,不可能说停止服务之后再去打开,然后再重新启动
这里我们的做法是再重启一个PuTTy
然后执行 curl http://localhost:5000/api/values 查看api是否可以访问
(8)将helloVS项目部署到CentOS
发布之前vs创建的helloVS项目到文件夹,然后我们需要借助一个 FileZilla 工具将文件上传到CentOS上面;
传输完成后我们继续使用PuTTy软件查看文件是否上传成功
这时候执行dotnet helloVS.dll运行我们发布的内容
遇到以上问题的解决方法:
说明现在的平台上的dotnet SDK不是2.0.3的,执行以下命令即可:
sudo yum install dotnet-sdk-2.0.3
用PuTTy访问5000端口curl http://localhost:5000
这里可以看到网站已经可以访问了
(9)Nginx映射端口
进入nginx安装目录 cd /etc/nginx
查看nginx.conf
可以看到默认是吧所有的*.conf文件引入进来的
刚开始有默认的80端口的配置,我们要把它注释掉
这时候进入conf.d文件夹发现里面并没有任何文件
这时候我们创建一个netcore.conf文件,将80端口对5000对口进行转发
server {
listen 80;
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;
proxy_set_header X-Forwarded-For
proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
配置完成之后执行 nginx -s reload 或者 systemctl restart nginx 进行重启nginx
然后访问80端口
这时候访问发现有可能报502,找了很久才找到解决办法
原因:SELinux配置问题。
解决:关闭SELinux。
输入:sestatus,如果SELinux status: enabled ,表示开启,输入 vi /etc/selinux/config 修改配置: SELINUX=disabled 。
或者
CentOS: 将NGINX加到SELinux的允许名单
yum install policycoreutils-python
cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
semodule -i mynginx.pp
然后重启CentOS
齐活!!!