参考文章:点此跳转
下面是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命令,出现以下信息则说明安装成功。
这里使用VS新建一个了项目test。路径为:/home/hdc/test。
进入到项目目录(Program.cs文件所在的位置)并运行:
cd /home/hdc/test
dotnet run
如果能监听成功,说明没问题。
1、执行以下命令:
sudo apt-get install nginx
sudo service ngnix start
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
Tips:如果不成功的话,试着用以下命令更新一下系统
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot
到目前为止,应用程序还是我们自己手动运行起来的,而且还不能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