.net core 2.0学习笔记(二):部署到Windows和Liunx系统
.Net Core最大的亮点就是跨平台了,下面介绍下在Windows下和Liunx下的部署。
首先发布项目文件,点击网站项目右键 发布:

从下图发布的文件图片可以看出,不像以前bin目录下有很多dll,现在总体文件大小比以前小了很多

一.Windows下部署(较比之前部署多了下载一个模块和选择无托管)
(1)安装AspNetCoreModule托管模块(已安装则跳过),点击我下载
(2)安装之后在模块里可以找到AspNetCoreModule就说明成功了


(3) 在IIS中添加网站:


最后选择 无托管代码 即可
(4)运行效果:

二.Liunx部署
(1)这里以迷你版的CentOs(CentOS-7-x86_64-Minimal-1708)为示例,运行CentOS
1.修改 ifcfg-ens33 文件


修改之后按ESC键,再输入:wq保存退出,最后输入 service network restart 重启网卡
2.安装net-tools
输入sudo yum install net-tools,最后根据提示输入Y即可
3.输入ifconfig,查看当前系统ip地址

4.第三步我们知道了IP地址,下面就使用windows下的一个工具来操作centOS(毕竟在CentOs中操作比较麻烦),工具:点击下载putty


复制好文字右键就是粘贴
5.Nginx的安装(重启Nginx命令: systemctl restart nginx)
输入命令( 根据提示输入Y 即可):
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
还需要输入关闭防火墙命令:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
完成之后可以在Windows的浏览器中输入上面的IP访问了

6.在CentOs中下载.Net Core
具体操作:https://www.microsoft.com/net/learn/get-started/linuxcentos

安装成功之后输入dotnet --version会出现版本则说明成功了

7.将我们在 Visual Studio 2017 中的网站发布文件复制到CentOs中,我们需要用到FTP传输工具,这里使用FlashFXP
首先在FlashFXP菜单中找到 站点-站点管理器-新建站点

连接成功之后,在home文件夹下新建netcore文件夹,然后把发布文件通过FTP传输进去

如果输入dotnet CoreDemo.dll出现报错,运行命令: sudo yum install dotnet-sdk-2.1.3(或者在上面第6步操作的时候直接安装这个)

安装之后再次输入dotnet CoreDemo.dll:

在CentOS中使用命令: curl http://localhost:5000没有出现错误则成功
最后修改Nginx配置来实现局域网访问:
使用FlashFXP进入/etc/nginx/ 修改其中的nginx.conf文件(也可以使用命令来编辑)

将其中的server段替换成下面的配置
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;
}
}
最后使用命令: systemctl restart nginx 重启Nginx
输入之后发现出现502 Bad GateWay.....

这个问题找了我好久...结果发现是因为Linux保护机制所导致,我们需要将nginx添加至Linux的白名单
输入以下命令:
yum install policycoreutils-python
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp
再尝试访问:

到现在基本部署完成了。
问题:我们会发现重启CentOs之后Nginx需要手动启动,下面配置将Nginx改为自启动:
使用命令: systemctl enable nginx.service 或者 systemctl enable nginx
使用命令: systemctl is-enabled nginx 来确认是否设置成功
可能出现的问题:
1.如果在Windows下出现访问不了的情况(FlashFXP/Putty连接不上),可以重启下CentOs虚拟机
.net core 2.0学习笔记(二):部署到Windows和Liunx系统的更多相关文章
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建
作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...
- .net core 2.0学习笔记(一):开发运行环境搭建
期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...
- net core 2.0学习笔记(一):开发运行环境搭建 (转)
期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...
- dotnet Core 2.0学习笔记(一)
一:Dotnet Core Windows运行环境,标红部分要注意 https://docs.microsoft.com/en-us/dotnet/core/windows-prerequisites ...
- .net core 2.0学习笔记(五):程序配置&ConfigurationManager
配置组件是.net framework中非常常用的功能.在创建.net framework 工程时,系统不仅会自动生成app.config文件,而且还提供了非常强大的访问类库.但是这些好东西,在.ne ...
- .net core 2.0学习笔记(二):Hello World & 进阶
官网已经有一个.net core的入手教程(https://www.microsoft.com/net/core#windowscmd),但这个教程完全没有顾及全宇宙第一IDE的感受.今天就跟大家体验 ...
- .net core 2.0学习笔记(四):迁移.net framework 工程到.net core
在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...
- .net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移
在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确 ...
随机推荐
- 单KEY业务,数据库水平切分架构实践
本文将以"用户中心"为例,介绍"单KEY"类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的 ...
- mysql根据汉字首字母排序[转]
select areaName from area order by convert(areaName USING gbk) COLLATE gbk_chinese_ci asc 说明 ...
- Django_xamdin安装与使用
有比Django更加强大的admin? xadmin? pip install xadmin 如何让xadmin生效? 新增两个注册app,xadmin,crispy_forms,通过run mana ...
- greedy算法(python版)
greedy算法的核心思想是首先计算覆盖面大的部分,然后依次寻找其他覆盖面最大的部分.该算法的使用场景就像他的名字一样,当符合贪婪属性的时候就可以考虑. states_needed = set(['北 ...
- JavaScript事件高级绑定
js 进行事件绑定,其中一种不常见的写法是: <div id="father" style="width: 300px; height: 200px; backgr ...
- Servlet--HttpServlet类
HttpServlet类 定义 public class HttpServlet extends GenericServlet implements Serializable 这是一个抽象类,用来简化 ...
- awk练习题-v参数
[xxxx.com]a=123bsas=sa2asd=a12ip=ip123[ooo.com]asd12=1223ip=ip123xas=123[xxoo.cn]asas=123sip=xs12213 ...
- 【转】globk中的控制文件
globk_comb.cmd * This group must be first eq_file ../tables/eq_renames make_svs ../tables/sat1.apr c ...
- python之金融与量化分析
一.金融 二.ipython 基础功能 ipython 快捷键
- elasticsearch-5.x JAVA API(001)
Elasticsearch JAVA API 极其广泛,把所有的方法意义介绍出来显然不太现实.从1.x到2.x,在到5.x,最后到6.0,也不过短短两三年的时间,我挑选了5.4.0版本分三部分把平时常 ...