前言:之前阿里云打折,买了个Linux服务器来练一练,尝试着在Linux使用Nginx部署.net core项目
在CentOs系统中安装.Net Core Sdk、Nginx
1、打开命令行,输出以下命令,注册Microsoft需要的依赖环境
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‘
2、安装.NET SDK
1、更新可用的安装包
sudo yum update
2、安装.NET需要的组件
sudo yum install libunwind libicu
3、安装.NET SDK(dotnet –version查看开发环境的版本)
sudo yum install dotnet-sdk-2.1
4、安装完成之后,检测是否安装成功:
dotnet --version
3、使用VS发布ASP.NET Core MVC程序,这里我的vs版本是2017
1、进入项目解决方案所在文件夹
2、按住shift+右键,打开命令窗口
3、执行dotnet publish自动发布
4、发布文件目录:\bin\Debug\netcoreapp2.1\publish
4、使用WinSCP传输发布文件到CentOS服务器 (root/publish) ;附WinSCP下载地址:https://winscp.net/eng/download.php
5、安装配置Nginx进行反向代理
1、安装CentOS的 EPEL仓库
yum install epel-release
2、安装Nginx
yum install nginx
3、启动Nginx:
systemctl start nginx
4、设置系统默认启动Nginx
systemctl enable nginx
5、查看防火墙状态:
systemctl status firewalld
6、启动防火墙
systemctl start firewalld
7、http通过:
firewall-cmd --permanent --zone=public --add-service=http
8、https通过:
firewall-cmd --permanent --zone=public --add-service=https
9、重启Nginx:
firewall-cmd --reload
10、在浏览器地址栏输入你服务器的IP地址, 如果出现图形表示Nginx安装配置成功;
11、如果无法访问, 请查看firewall 是否开放80端口:
12、开放80端口:firewall-cmd --zone= public --add-port= 3306 /tcp --permanent
13、重启防火墙:systemctl restart firewalld.service
6、修改Nginx的配置文件(root/)
1、把Nginx的默认配置文件 /etc/nginx/nginx.conf 里 80 端口转发配置 server 节点用 # 符注释掉
2、重新创建一个自定义的Nginx配置文件用来代理Core程序, 名称为nginxforcore.conf(可自定义名称)配置文件内容如下
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; } }
3、将创建好的自定义配置文件上传到 /etc/nginx/conf.d目录下
4、执行命令,重启Nginx
nginx –s reload
在CentOs系统中运行.NET Core
1、cd到发布目录:cd \publish
2、运行.Net Core程序: dotnet LinuxCore.dll (LinuxCore.dll是你发布出来编译过的项目)
3、浏览器访问服务器外网地址