ASP.NET Core多平台部署 (Windows Server+IIS与CentOS 7+Nginx)
一,Windows Server+IIS部署
1,安装配置IIS,这个应该都不用多说了,教程一堆
2,下载安装.NET Core Runtime 与 .NET Core SDK,下载请点击下载地址,如图

3,打开IIS管理器,应用程序池——添加应用程序池,名称随意,.NET Framework版本选择无托管代码,托管管道模式选择集成,如下图

4,网站——添加网站
- 网站名称
- 应用程序池,选择上一步创建的无托管代码的应用程序池
- 物理路径选择你发布的项目的所在路径
- 绑定-绑定主机名,绑定你解析的域名

5,浏览刚才创建的网站,访问成功

二,CentOS 7+Nginx
前言:之前没接触过Linux平台,下面的内容纯属个人见解,莫见笑
1,服务器连接工具,Xshell 6,协议SSH,用户身份验证,输入账户,密码,连接


2,安装.NET Core运行环境,NET Core Runtime 与 .NET Core SDK,安装请点击下载地址,如图



3,项目上传到服务器,推荐使用FileZilla连接服务器管理文件
- 打开FileZilla
- 文件-新建站点
- 协议使用SSH,输入主机名(IP),用户名,密码,点击连接
- 连接成功,菜单-服务器,开启 强制显示隐藏文件
- 本地文件与服务器文件实现互通上传,下载,删除等操作

4,项目通过FileZilla上传到服务器后,使用Xshell 6使用命令cd到项目所在的路径
使用.net core的运行命令,运行启动项目的dll文件
dotnet xxxxxxxx.dll

项目运行成功后,即可以通过IP+端口号访问项目了,假如访问不到注意是否是阿里云服务器的端口是否打开,或者是服务器的防火墙端口是否打开
注:ASP.NET Core默认的端口号是5000,可以通过修改项目的Program.cs文件,修改端口号
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5001")//修改默认端口
.UseStartup<Startup>();
注:这里有个问题就是当你把Xshell 6关闭后,项目也没办法访问了。。。这里得用另外一个命令保持后台常驻
nohup dotnet xxxxxxxx.dll &
如果需要关闭这个进程,可以通过lsof加项目的端口号查找进程信息
lsof -i:5005

再通过kill -9 id杀死这个进程,项目就无法访问了
kill -
5,安装Nginx为项目绑定域名
由于对Linux命令不熟悉,又不想花太多的心思在服务器上,我这里选择服务器安装 宝塔Linux 去界面化管理服务器
- 安装宝塔Linux,点击进入宝塔Linux官网
- 选择 宝塔Linux 免费版,查看页面底部的安装发放
- 选择CentOS脚本安装,复制命令,使用Xshell 6粘贴执行命令
- 等待宝塔Linux安装完毕
- 安装的最后一步会显示宝塔Linux的登录地址与初始账号密码,登录地址默认是服务器IP地址加上8888端口号 http://IP地址:8888
- 打开宝塔Linux的链接,输入初始账户密码,登录成功后可以修改账号密码

4,通过宝塔的软件商店,安装Nginx,打开Nginx,配置修改

在Nginx加以下配置
# http 80端口
server {
listen ; #监听80端口
server_name www.baidu.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;
}
}
5,增加https访问,把SSL证书文件放到 /www/server/nginx/conf/cert 路径下,使用以下配置
# http80端口兼容https443端口
server {
listen default_server; #监听80端口,作为默认网站,即使用ip访问时默认出现的站点
listen ssl; #同时监听443端口为ssl
server_name www.baidu.com;
#配置证书段,证书放在nginx安装目录的conf/cert目录下。
ssl_certificate cert/xxxxxxxxxx.pem; #证书pem
ssl_certificate_key cert/xxxxxxxx.key;#证书key
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:-LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
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;
}
}
注:点击保存,Nginx会自动重启服务,如需手动启动切换到服务选项卡里重载配置
ASP.NET Core多平台部署 (Windows Server+IIS与CentOS 7+Nginx)的更多相关文章
- ASP.NET Core使用TopShelf部署Windows服务
asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理. 反向代理可以提供很多特性,固然很好.但是 ...
- 【ASP.NET Core快速入门】(三)准备CentOS和Nginx环境
基本软件 VMware虚拟机 centos:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-170 ...
- ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- ASP.NET Core 1.0 部署 HTTPS
ASP.NET Core 1.0 部署 HTTPS ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) 提示 更新时间:2016年01月23日. 在目前介 ...
- ASP.NET Core开发期间部署到IIS自定义主机域名并附加进程调试
在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- ASP.NET Core开发期间部署到IIS自定义主机域名并附加到进程调试
在.NET Framework环境下,我们经常会这么做 把一个web项目不经过发布直接部署到IIS里去,配置上主机名,修改一下hosts文件,就可以用自定义的域名来访问我们的应用程序,使用附加到进程( ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- asp.net core 2.1 部署 centos7
asp.net core 2.1 部署 centos7 Kestrel 非常适合从 ASP.NET Core 提供动态内容. 但是,Web 服务功能不像服务器(如 IIS.Apache 或 Nginx ...
随机推荐
- jenkins设置
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PAT ...
- 加州理工学院公开课:机器学习与数据挖掘_Regularization(第十二课)
课程简单介绍: 接上一节课,这一节课的主题是怎样利用 Regularization 避免 Overfitting.通过给如果集设定一些限制条件从而避免 Overfitting,可是如果限制条件设置的 ...
- springboot + rabbitmq 整合示例
几个概念说明:Broker:简单来说就是消息队列服务器实体.Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列.Queue:消息队列载体,每个消息都会被投入到一个或多个队列.Bindi ...
- The Elder HDU - 5956
/* 树上斜率优化 一开始想的是构造出一个序列 转化成一般的dp但是可能被卡 扫把状的树的话可能变成n*n 其实可以直接在树上维护这个单调队列 dfs虽然搞得是一棵树,但是每次都是dfs到的都是一个序 ...
- C# SuperWebSocket服务端、客户端学习(三)
1.打开VS2012,新建一个windows窗体程序,选择.NET4.0版本 2.添加引用 SuperSocket的dll文件( SuperSocket.Common.dll, SuperSocket ...
- leetcode String相关
目录 3无重复字符的最长子串 5最长回文子串 8字符串转换整数(atoi), 9回文数,7整数反转 28实现strStr(), 459重复的子字符串(KMP) 43字符串相乘 71简化路径 93复原I ...
- php的string编码类型
在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ...
- Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询
一: 基于对象的跨表查询 1. 一对一 正向: 反向: 2. 一对多 正向: 反向: 3.多对多 正向: 反向: 4.*****基于对象的多表查询 二: 基于双下划线的多表查询 1. 连表查询 一对一 ...
- Python 33(2)进程理论
一:什么是进程 进程指的是一个正在进行 / 运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆代码 进程:程序的执行的过程 进程的概念起源于操作系统,进程是操作 ...
- [转] 理解 Dubbo SPI 扩展机制
写在前面 最近接触了 gRPC 体会到虽然众多 RPC 框架各有各的特点但是他们提供的特性和功能有很多的相似之处 , 这就说明他们面对同样的分布式系统带来的问题.从 2016 年左右开始接触到 dub ...