Ubuntu20.04下Nginx的.NetCore项目部署流程

Ubuntu20.04下Nginx的Web项目部署流程:点此跳转

本文旨在介绍在Ubuntu20.04系统中配置Nginx服务,并进行.NetCore项目部署。

第一部分:.NetCore项目部署

参考文章:点此跳转

步骤一:安装.NET Core SDK

下面是Ubuntu20.04版本的.net环境配置,其它版本参考官方文档
1、打开终端并运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

rm packages-microsoft-prod.deb

2、安装 SDK:

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

3、安装好之后试着执行一下dotnet --info命令,出现以下信息则说明安装成功。
Ubuntu20.04下Nginx的.NetCore项目部署流程_第1张图片

步骤二:创建项目

这里使用VS新建一个了项目test。路径为:/home/hdc/test。
进入到项目目录(Program.cs文件所在的位置)并运行:

cd /home/hdc/test

dotnet run

如果能监听成功,说明没问题。

步骤三:安装Nginx并启动

1、执行以下命令:

sudo apt-get install nginx

sudo service ngnix start

2、启动后使用浏览器访问服务器地址,显示以下内容则表示成功。
Ubuntu20.04下Nginx的.NetCore项目部署流程_第2张图片
3、安装好之后进入到以下目录,打开default文件并删除说有内容,修改为以下的内容
执行命令:

cd /etc/nginx/sites-available

sudo vim default

修改内容:

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;
          try_files $uri $uri/ =404;
   }
}

顺便记录几个常用的编辑命令

sudo vim Program.cs  //打开或新建Program.cs文件

i  //进入编辑模式

Esc键  //退出编辑模式

yy  //复制光标所在行

5yy  //复制光标起后5行

p //粘贴

dd  //删除光标所在行

5dd  //删除光标起后5行

u   //撤销操作

:q!  //不保存并退出

:wq  //保存并退出

4、重新启动Nginx来应用配置

sudo nginx -t //检测配置文件中是否有错误

sudo systemctl restart nginx

5、重新运行我们刚才的test项目,然后打开本机浏览器,输入:http://192.168.1.95访问,如果出现自己项目的画面(如下图),说明配置已经成功。服务器已经不再是IIS,取而代之的是ubuntu上的nginx,版本为1.10.1
Ubuntu20.04下Nginx的.NetCore项目部署流程_第3张图片
Tips:如果不成功的话,试着用以下命令更新一下系统

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot

步骤四:配置守护进程Supervisor

到目前为止,应用程序还是我们自己手动运行起来的,而且还不能Ctrl+C关闭并退出,否则你的网站将无法访问!所以我们需要有一个类似监视器的角色来保证ASP.NET Core进程的正常运行,那么Supervisor会是我们的首选。
1、安装supervisor

sudo apt-get install supervisor

2、发布上面的test项目,记录下你的发布路径(如下图)
在项目根目录下执行命令:

dotnet publish

在这里插入图片描述
3、发布成功之后记得切换到发布目录执行下dotnet运行命令,然后重复上面的步骤5看下是否可以正常访问,没问题的话我们进行下一步

cd /home/hdc/test/bin/Debug/netcoreapp1.1

dotnet test.dll

4、切换到var路径,创建一个netcore文件夹,再在其下创建一个test-publish文件夹,然后将上面发布后的所有文件拷贝到这里

cd /var

sudo mkdir netcore

cd netcore

sudo mkdir test-publish

cd test-publish

sudo cp -a /home/hdc/test/bin/Debug/netcoreapp1.1/publish/* /var/netcore/test-publishls

5、创建test.conf的supervisor配置文件,并将以下内容添加进去

cd /etc/supervisor/conf.d

sudo vim test.conf

添加内容:

[program:test]
command=/usr/bin/dotnet /var/netcore/test-publish/test.dll
directory=/var/netcore/test-publish/
autostart=true
autorestart=true
stderr_logfile=/var/log/test.err.log
stderr_logfile=/var/log/test.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=www-data
stopsingnal=INT
stopasgroup=true
killasgroup=true

6、重新启动supervisor来应用配置!然后试着用本机访问下ubuntu server的IP,看下网站是否如你所愿的展示在了你的面前!如果和上面的步骤5一致,那么整个部署流程已经暂时告一段落,这样一来即使你重启了服务器,网站依旧可以访问。

sudo service supervisor restart

你可能感兴趣的:(nginx,.netcore,ubuntu,nginx,.netcore,linux)