ASP.NET Core 2.0使用Nginx进行反向代理

前几天在Liunx上部署了一个.NET Core 的OA系统,把部署的经验分享给大家,希望可以帮助到广大.NET 程序员。

这次部署使用的操作系统是CentOS7

首先我们要在CentOS上安装nginx,至于Nginx我就不做介绍了,不懂的同学可以百度一下。

前置条件:在liunx上安装.Net Core 的SDK,官网有教程简单的要死。

使用yum安装nginx     yum install nginx

执行之后就会成功安装了nginx,紧接着这有个大坑,因为nginx在安装完后会占用nginx的服务进程,所以这时候你如果使用服务启动命令启动nginx服务的话会死活都启动不起来,所以我们要先关闭nginx的进程如图:

执行命令:ps -ef| grep nginx

ASP.NET Core 2.0使用Nginx进行反向代理


我们可以看到nginx所占用的端口,然后执行kill 端口号.结束nginx的进程

这时候再执行systemctl start nginx 启动nginx的服务

执行 systemctl status nginx 我们会看到nginx的服务已经正常启动

ASP.NET Core 2.0使用Nginx进行反向代理

当服务正常启动之后,我们去根目录的etc文件夹下找到nginx文件夹

这里推荐大家使用winScp这个应用,这个应用可以让我们以图形管理界面的方式来管理liunx的文件

ASP.NET Core 2.0使用Nginx进行反向代理

nginx的安装路径是root/etc/nginx

我们在文件夹中找到nginx.conf文件,这个是nginx的配置文件,打开文件找到server节点,把Sservie节点下的location节点中的内容替换为以下内容

ASP.NET Core 2.0使用Nginx进行反向代理

这个配置的意思是监听80端口,如果有人访问80端口就把请求转到5000端口,这里的5000端口就是你.net core程序的端口,默认为5000可以更改,如果有更改换掉即可。

更改完成后保存,执行命令 nginx -t 检测配置文件格式是否正确

ASP.NET Core 2.0使用Nginx进行反向代理

如果出现这个结果说明你的配置文件没有问题,执行 nginx -s reload 重新加载配置文件

然后我们接下里为我们的.NET 程序配置一个监视服务

使用winScp进入到 root/etc/systemd/system文件夹下

ASP.NET Core 2.0使用Nginx进行反向代理

右键新建一个文件,后缀为service

文件内容如下:



[Unit]
Description=项目描述(尽量别用中文)


[Service]
WorkingDirectory=/home/PublishOutput(程序的文件目录:web.dll的目录)
ExecStart=/usr/bin/dotnet(.NET运行时的位置,这个是默认位置) /home/PublishOutput/CZKJ.CMS.Web.dll(你应用程序的启动入口dll的路径)
Restart=always
# Restart service after 10 seconds if dotnet service crashes
RestartSec=10  
SyslogIdentifier=voyage
User=root(尽量使用高权限用户)
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]

WantedBy=multi-user.target


上面除了有注释的地方剩下的都可以不修改,.net运行时的位置可以直接使用上文的

执行命令 systemctl enable 服务名

然后systemctl start 服务名,继续执行systemctl status 服务名

ASP.NET Core 2.0使用Nginx进行反向代理

如果你服务文件中的配置填写正确的话会显示成功运行。

这是重启nginx  systemctl restart nginx 

然后查看一下nginx服务的状态,如果运行正常我们访问一下我们的80端口

ASP.NET Core 2.0使用Nginx进行反向代理


发现网站已经启动,反向代理成功。

以上是我对.NET CORE 使用nginx的一些总结,有不对的地方欢迎指正,如果疑惑可以留言。

希望帮到了广大.NET 程序员。