资讯专栏INFORMATION COLUMN

[亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置

Riddler / 957人阅读

摘要:注本文给大家分享了一些关于怎么发布部署到服务器并配置实现反向代理还有很多问题并没有涉及到,比如服务器的安全路由表的配置,的高级配置等等,请在实际项目部署中查阅相关资料进行处理。本文同步发表至码友网怎么发布部署到服务器并配置实现反向代理

前言

ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢?

步骤 第1步:准备工作

一台Liunx服务器:笔者用的是【搬瓦工】的VPS服务器(CDN加速,支持支付宝,多机房选择)--低配版[2.5$每月,29.99$每年],需要的同学点此了解详情

再推荐一个VPS服务器 Vultr.com (和 搬瓦工 差不多,也支持支付宝,但它支持月付,每月仅 2.5$ )

一个Linux终端管理工具:笔者推荐Xshell,点击下载Xshell

准备好Ubuntu服务器器 [Ubuntu 17.04 x64] 和终端管理工具后,我们开始配置关于ASP.NET Core 2.0的Linux环境。

第2步:创建一个非root用户

为了安全和管理的方便,我们不使用root用户,而是创建一个非root用户:

adduser myuser          # [myuser为用户名,可自定义指定]将提示你输入登录密码,请输入并牢记
usermod -aG sudo myuser # 将创建的用户添加到sudo分组中,以便使用管理员的命令
exit                    # 结束终端会话

用户创建完成后,使用这个用户来重新连接linux服务器

第3步:更新Linux服务器
sudo apt-get update        
sudo apt-get upgrade       
sudo apt-get dist-upgrade  
sudo reboot

注:如果你想自动更新,你也可以使用 unattended-upgrades(以下命令根据自己需要选择) :

sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
第4步: 安装 .NET Core

在Linux环境中运行ASP.NET Core网站,我们需要安装.NET Core运行时(当然也可以自己实现.NET Core程序的宿主)。

a. 注册微软产品KEY为被信任的:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

b. 设置所需要的版本主机包(Ubuntu 17.04,其他linux版本的请见https://docs.microsoft.com/en...:

sudo sh -c "echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-zesty-prod zesty main" > /etc/apt/sources.list.d/dotnetdev.list"
sudo apt-get update

c. 安装.NET Core:

sudo apt-get install dotnet-sdk-2.0.0

d. 运行dotnet --version命令检查是否安装成功:

dotnet --version

如果显示:2.0.0 ,则说明linux服务器中成功安装了.NET Core 2.0.0版本。

第5步:创建示例程序

本文中,我们直接使用.NET Core 的命令创建一个ASP.NET Core 2.0 示例网站应用程序,创建目录 /home/myuser/firstapp,执行命令:

dotnet new mvc

接着,发布刚才创建的ASP.NET Core 2.0 网站发网站目录,所以,我们先创建一个网站发布目录:/var/www/firstapp,运行dotnet发布命令:

dotnet restore
dotnet publish -c release

dotnet命令将把ASP.NET Core 2.0 示例网站发布到目录:/home/myuser/firstapp/bin/release/netcoreapp2.0/publish/ 中,拷贝发布后的ASP.NET Core 2.0网站程序:

scp -r /home/myuser/firstapp/bin/release/netcoreapp2.0/publish/* /var/www/firstapp
第6步:启动网站

我们需要配置 systemd 来让 dotnet成为一个服务并启动。

sudo vim /etc/systemd/system/kestrel-mysite.service
sudo systemctl enable kestrel-mysite.service # 注册服务
sudo systemctl start kestrel-mysite.service  # 启动服务
sudo systemctl status kestrel-mysite.service # 检查服务的运行状态

现在,我们的示例网站就可以通过5000端口在服务器端访问了,在终端使用wget命令:

wget http://localhost:5000

可以看到如下的运行效果:

说明我们的ASP.NET Core 2.0网站应用程序在linux服务器上配置成功了。
到这里,是不觉得ASP.NET Core 2.0在linux上运行 so easy 呢!!!

但是,当你看到“但是”的时候,心里怎么想的呢?

但是,我们这个示例程序现在还只能在服务器中访问,外网是不能访问的。

不急,本文给大家分享的是使用Nginx来作反向代理,实现外网的访问,以及域名访问。

第7步:nginx反向代理
sudo apt-get install nginx

使用 vim 配置nginx的服务配置

sudo vim /etc/nginx/sites-available/default

将nginx的配置替换成如下的配置:

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;
    }
}

测试配置:

sudo nginx -t

重新加载配置:

sudo nginx -s reload

现在是见证奇迹的时刻了,在浏览器中直接输入你的服务器IP地址并访问,噔噔噔噔噔:

怎么样,现在你的ASP.NET Core 2.0 网站可以通过网络访问了,如果你还想让你的网站支持通过域名访问,那nginx中配置也是非常简单的:

server {
    listen 80;
    server_name www.your_domain_name.com;
    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;
    }
}

其中:www.your_domain_name.com 即为你的域名,修改配置后,重新加载nginx配置:

sudo nginx -s reload

愉快地使用域名访问吧。

注: 本文给大家分享了一些关于ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx实现反向代理,还有很多问题并没有涉及到,比如:服务器的安全(路由表IP的配置,nginx的高级配置等等),请在实际项目部署中查阅相关资料进行处理。

如果你觉得本文对你有帮助,请点个赞,让更多需要了解、学习本文内容的同学知晓,谢谢你的支持。

本文同步发表至 码友网 《ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx实现反向代理》

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110500.html

相关文章

  • 使用 .NET 平台,如何玩转 Universal Windows 应用?

    摘要:开发人员经常设计自适应的以便其适应于不同设备不同形式。,目前库包括和,两者之前均不适用手机应用程序。快尝试下吧当处于模式中,应用程序通过新编辑器编译。例如在电脑桌面上,我的应用程序及其美观,但是在手机界面上,它仅仅显示状态栏。 2015年7月30日 本文作者是 Managed Languages 团队项目经理 Lucian Wischik。 不久前,Visual Studio 2015...

    NickZhou 评论0 收藏0
  • 在CentOS 7上安装.NET Core R2跑Hello World

    摘要:由于之前安装的系统是的,目前还不支持,就没有在上测试。安装提示和是用于自动化创建项目的,不是必须项。移动并解压下载的安装文件。测试安装是否成功。如果能启动则安装正确。 showImg(https://segmentfault.com/img/remote/1460000006808323); 前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下。原本想...

    tracy 评论0 收藏0
  • 爬取博客园首页数据进行数据分析

    摘要:目标选取了博客园,爬取了首页的前页文章,但是数据放在那一直没去分析。为了避免对博客园造成压力,爬虫代码不公开。注数据来源是年月日至月的博客园首页文章。谁是博客园最爱的用户最爱的用户,在这里是按文章上首页的数量来判断的。 前言 之前折腾了一小段时间scrapy,觉得使用起来异常简单,然后打算练练手。目标选取了博客园,爬取了首页的前200页文章,但是数据放在那一直没去分析。趁着现在有闲心,...

    zilu 评论0 收藏0
  • Pro ASP.NET Core MVC 2翻译计划:第一章

    摘要:原始的框架年月,微软发布了一个基于现有平台的新开发平台,旨在于直接回应对的批评和等竞争平台的普及。框架的发布标志着微软的态度发生了重大变化。此前,微软试图控制应用程序工具链中的每个组件。年,微软宣布了和框架的新方向,最终形成了本书的主题。 ASP.NET CORE MVC 2 介绍 对于Microsoft平台上的Web开发人员来说,使用ASP.NET Core MVC是一次彻底的转变。...

    chaosx110 评论0 收藏0
  • 【dotnet跨平台】最新版dotnet-cli下的ASP.NET Coreasp.net mvc

    摘要:是里面提供的,使用旧的。这个版本会使用,和等,而则不需要,只需要和,无论是对控制台程序还是程序。就是在的基础上从迁移到基于或者的跨平台产品。声明下,还没出来,这里使用的是正在开发的版本的最新版本。想试下最新版下的和,可以参考和。 RC1是http://get.asp.net里面提供的https://docs.asp.net/en/latest/getting-s...,使用旧的ASP...

    2bdenny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<