Ubuntu20.04下Nginx的Web项目部署流程:点此跳转
本文旨在介绍在Ubuntu20.04系统中配置Nginx服务,并进行.NetCore项目部署。
第一部分:.NetCore项目部署
参考文章:点此跳转
步骤一:安装.NET Core SDK
下面是Ubuntu20.04版本的.net环境配置,其它版本参考官方文档
1、打开终端并运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库:
wget /config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debrm 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命令,出现以下信息则说明安装成功。
步骤二:创建项目
这里使用VS新建一个了项目test。路径为:/home/hdc/test。
进入到项目目录(Program.cs文件所在的位置)并运行:
cd /home/hdc/testdotnet run
如果能监听成功,说明没问题。
步骤三:安装Nginx并启动
1、执行以下命令:
sudo apt-get install nginxsudo service ngnix start
2、启动后使用浏览器访问服务器地址,显示以下内容则表示成功。
3、安装好之后进入到以下目录,打开default文件并删除说有内容,修改为以下的内容
执行命令:
cd /etc/nginx/sites-availablesudo 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
Tips:如果不成功的话,试着用以下命令更新一下系统
sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgradesudo reboot
步骤四:配置守护进程Supervisor
到目前为止,应用程序还是我们自己手动运行起来的,而且还不能Ctrl+C关闭并退出,否则你的网站将无法访问!所以我们需要有一个类似监视器的角色来保证 Core进程的正常运行,那么Supervisor会是我们的首选。
1、安装supervisor
sudo apt-get install supervisor
2、发布上面的test项目,记录下你的发布路径(如下图)
在项目根目录下执行命令:
dotnet publish
3、发布成功之后记得切换到发布目录执行下dotnet运行命令,然后重复上面的步骤5看下是否可以正常访问,没问题的话我们进行下一步
cd /home/hdc/test/bin/Debug/netcoreapp1.1dotnet test.dll
4、切换到var路径,创建一个netcore文件夹,再在其下创建一个test-publish文件夹,然后将上面发布后的所有文件拷贝到这里
cd /varsudo mkdir netcorecd netcoresudo mkdir test-publishcd test-publishsudo cp -a /home/hdc/test/bin/Debug/netcoreapp1.1/publish/* /var/netcore/test-publishls
5、创建test.conf的supervisor配置文件,并将以下内容添加进去
cd /etc/supervisor/conf.dsudo vim test.conf
添加内容:
[program:test]command=/usr/bin/dotnet /var/netcore/test-publish/test.dlldirectory=/var/netcore/test-publish/autostart=trueautorestart=truestderr_logfile=/var/log/test.err.logstderr_logfile=/var/log/test.out.logenvironment=ASPNETCORE_ENVIRONMENT=Productionuser=www-datastopsingnal=INTstopasgroup=truekillasgroup=true
6、重新启动supervisor来应用配置!然后试着用本机访问下ubuntu server的IP,看下网站是否如你所愿的展示在了你的面前!如果和上面的步骤5一致,那么整个部署流程已经暂时告一段落,这样一来即使你重启了服务器,网站依旧可以访问。
sudo service supervisor restart