ASP.NET Core 2.x On Ubuntu
安装.NET Core
首先需要安装.NET Core Runtime: https://www.microsoft.com/net/download

点击之后,根据您的Linux发行版不同,选择相应的操作步骤:


最后执行dotnet --info验证安装是否成功:

安装Nginx
另外还需要安装Nginx,直接查看官网文档吧:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x#install-nginx
安装好后,访问这个页面:http://你的ip地址/index.nginx-debian.html,如果看到如下效果说明安装成功:
配置nginx
根据官网的介绍,asp.net core使用nginx作为反向代理服务器。
安装指令apt-get install nginx。
安装成功后进入nginx的安装目录cd /etc/nginx

在服务器构建源码并发布
然后就是发布程序了,发布有两种办法:
- 在开发机上执行dotnet publish然后把发布的文件复制到服务器上
- 或者直接在服务器上使用源码构建并发布,我一般是这样做的。
由于我是直接在服务器上构建发布,所以我需要安装.NET Core SDK:https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial

然后就可以使用发布命令了:dotnet publish --configuration Release。
发布好的文件在bin/Release/netcoreapp*.*/publish下面。
再把publish下的所有文件复制到我的目标文件夹即可:

在我的目标目录下,有这些文件:

如果执行 dotnet test.dll,这个程序就会在localhost:5000运行:

配置Nginx
然后我们再回来配置Nginx,进入/etc/nginx/sites-available,里面有一个Default文件,把它改个名,然后我们再建立一个新的Default文件:

保存后执行sudo nginx -t检验这个配置文件。
然后再执行 nginx -s reload 来重启nginx。
随后需要再把发布后的程序运行一下:dotnet test.dll:

在我使用网址访问80端口的时候,会自动跳转到5001端口,导致连接失败:

这是因为项目里默认使用了HTTPS Redirection。因为我没有证书,所以为了演示,我把HTTPS Redirection相关的代码注释掉,再发布:

重复上述步骤之后,通过网址的80端口,就可以正常访问了:

NGINX配置证书和HTTPS
配置HTTPS和证书相关的内容直接去看官方文档:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x#configure-ssl
添加proxy.conf和编辑nginx.conf后重启nginx即可。
按照操作,运行后如果不能使用https正常访问网站,那么有可能是无法绑定443端口导致的。
查看nginx错误日志:/var/log/nginx/error.log,如果出现下面的错误:

可以执行下列命令来解决:
sudo fuser -k 443/tcp
service nginx restart
然后再次访问https网址:

ASP.NET Core 2.x On Ubuntu的更多相关文章
- ASP.net Core部署说明(Ubuntu) [转]
最近在学习asp.net core,当然学习的目的是想了解一下,Asp.net core是否真的能够是先跨平台部署. 根据目前官网资料说明,asp.net core只有在Redhat 企业版上,才能够 ...
- ASP.Net Core 运行在Linux(Ubuntu)
这段时间一直在研究asp.net core部署到linux,今天终于成功了,这里分享一下我的部署过程. Linux Disibutaion:Ubuntu 14.04 Web Server:nginx. ...
- ASP .Net Core系统部署到Ubuntu 16.04 具体方案
.Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...
- WTM asp.net core应用程序在Ubuntu上和CentOS上部署
wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...
- [aspnetcore]asp.net core程序部署到Ubuntu中的路径问题
先标记下正确写法 new FileInfo(Environment.CurrentDirectory + "/Config/Log4net.config") 很多同行喜欢这样写: ...
- ubuntu下发布asp.net core并用nginx代理之旅
asp.net core 1.0.1发布已有些日子了,怀着好奇的心情体验了把ubuntu下的asp.net core 系统运行环境:ubuntu 16.0.4 for developer 首先搭建.n ...
- linux+asp.net core+nginx四层负载均衡
Linux Disibutaion:Ubuntu 16.04.1 LTS Web Server:Nginx.Kestrel 关于如何在linux中部署asp.net core我这里不再详细介绍,可以参 ...
- Running ASP.NET Core applications on Windows Subsystem for Linux
Setting up Linux on Windows 10 First thing is to enable Windows Subsystem for Linux. It doesn’t inst ...
- Ubuntu Server 16.04下ASP.NET Core Web Api + MySql + Dapper在 Jexus、nginx 下的简单测试
一.环境及工具 1.服务器 VirtualBox5.1.4 安装 Ubuntu Server 16.04 amd64 MySql Ver 14.14 Distrib 5.6.21 Jexus 5.8. ...
随机推荐
- Window环境下搭建Git服务器
如果公司要搭建自己的 Git 服务器,可以使用 gitblit 这个开源的 Git 服务器 下载gitblit安装包 到 http://gitblit.com/下载安装包 解压缩下载的压缩包即可,无需 ...
- 搞懂MySQL InnoDB B+树索引
一.InnoDB索引 InnoDB支持以下几种索引: B+树索引 全文索引 哈希索引 本文将着重介绍B+树索引.其他两个全文索引和哈希索引只是做简单介绍一笔带过. 哈希索引是自适应的,也就是说这个不能 ...
- c++性能测试工具:google benchmark入门(一)
如果你正在寻找一款c++性能测试工具,那么这篇文章是不容错过的. 市面上的benchmark工具或多或少存在一些使用上的不便,那么是否存在一个使用简便又功能强大的性能测试工具呢?答案是google/b ...
- Windows Tomcat 日志输出到 catlina.out 按日期输出,自启动
配置tomcat和jdk环境变量 CATALINA_BASE D:\ApacheSoftwareFoundation\Tomcat8.5 CATALINA_HOME D:\ApacheSoftware ...
- Deepin MongoDB安装&使用总结
参考:手把手教你 MongoDB 的安装与详细使用(一) deepin 安装 mongodb 数据库(全面) 1. 导入公钥 sudo apt-key adv --keyserver hkp://ke ...
- Dynamics CRM项目实例之七:站点地图修改,联系人-订单-积分管理
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复138或者20141229可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面文章发表后,不 ...
- 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口
由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...
- 如何正确的升级node版本【已解决】
博主亲身经历可以用以下几步解决node版本问题噢,解决了记得留个赞哈! 1 . 首先要安装n这个版本控制器噢 npm i -g n 如果这一步成功了就接着走哈,但是博主试了,大多数是安装不成功的,可以 ...
- easyui实现分页
主要参考官方的文档,欢迎评论 1.集成easyui,下面是我的引入方式,我引入到了head.html 每次只要引入该页面就可以了. <!-- easyui样式支持 --><link ...
- python崩溃到现在居然还没有放弃的Day07
今天新入一个全新的知识面,叫做深浅拷贝,拷贝英文名copy,俗称复制,作为一个火影迷就会想到拷贝忍者旗木卡卡西,跑题了,在所有的数据存储时,都会有内存地址和存储地址,浅拷贝只拷贝第一层的内存地址,深拷 ...