centos 7 部署 dotnetcore+Angular2 实践

1.准备

服务器: 腾讯云主机(Centos 7.1)

http://www.qcloud.com/

项目:aspnetcore+angular2开源项目模版

https://www.npmjs.com/package/generator-aspnetcore-angular2

该项目使用webpack 打包Angular2, 内网涉及到npm请使用tnpm


2.环境安装

(1)安装dotnetcore

https://www.microsoft.com/net/core#linuxcentos

根据官方指导进行安装;

官网给出的安装引导是安装dotnet core 1.1 ,但是我们项目使用的dotnetcore 1.0.1

所以必须再安装1.0.1 (备注dotnet core 可以多个版本并存)

curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529tar zxf dotnet.tar.gz -C /opt/dotnet

 (下载的地址不一样)


(2)禁用防火墙

systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动

 由于是学习项目,可以先关闭防火墙, 生成环境请配置防火墙iptable

(3)安装Nginx

 yum install nginxsystemctl start nginx

 使用命令行测试 curl http://127.0.0.1  能访问到html内容则正常




3.项目构建

(1)构建项目

在windows环境 构建  指引 参考 https://www.npmjs.com/package/generator-aspnetcore-angular2

npm如果访问问题可以使用tnpm (http://tnpm.oa.com/)

npm install -g yonpm install -g generator-aspnetcore-angular2

 创建项目

选择高级模版


取消npm 安装 使用 tnpm 


编译项目

编译dotnet ,编译angular2

dotnet 程序集restore,webpack 打包Angular2 ,本地运行项目

有兴趣的同学可以多了解快命令具体做了啥


本地访问

http://localhost:3000/


4.部署项目

(1)执行发布脚本

dotnet publish

 该命令会执行project.json 的构建命令

"scripts": {
"prepublish": [ "npm install", "npm run rebuild-sass", "npm run build" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}


(2)压缩生成文件

目录:

\test\src\test\bin\Debug\netcoreapp1.0\publish

压缩成zip  ,稍后上传到linux进行部署

(3)上传项目

使用ftp工具上传只centos  (我使用的xshell+xftp)

解压文件: unzip test.zip

(4)启动项目

set ASPNETCORE_ENVIRONMENT=Developmentdotnet test.dll server.urls=http://127.0.0.1:3000/

 (备注 此处没有使用localhost ,是因为ip6 下bind错误 )


已经监听了 

(5)测试


发现上面虽然打开了我们的页面其实是爆了一个错误

需要修改 Views\Home\Index.cshtml 文件

 <app-root asp-prerender-module="wwwroot/src/server" 
asp-prerender-webpack-config="webpack.config.js">
Loading...</app-root>

 去掉如下代码

 asp-prerender-module="wwwroot/src/server" asp-prerender-webpack-config="webpack.config.js"

curl  测试html正常



(6)配置代理

3000端口不适合暴露外网, 配置Nginx 反向代理

vim /etc/nginx/nginx.conf

 


添加 cgi

 proxy_pass http://127.0.0.1:3000; 
  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;    
 proxy_set_header X-Real-IP $remote_addr;    
 proxy_set_header REMOTE-HOST $remote_addr;  
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 检查nginx配置

重启nginx

/usr/sbin/nginx -t 
service nginx restart#获取使用reloadnginx -s reload

 

(7)查看成果

使用外网ip访问站点, 直接访问80端口就好了


5.其他

该项目目前只是用于学习dotnetcore ,Angular2 , 顺便熟悉一下 npm,webpack,linux ;

原文地址: https://www.qcloud.com/community/article/239


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java.nio.ByteBuffer用法小结

转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型.ByteBuffer是最常用的缓冲区,…

Python函数之计算规则图形的面积

来个直接的吧&#xff0c;看代码; #codingutf-8 from __future__ import unicode_literals import sys reload(sys) sys.setdefaultencoding(utf-8)#圆形 def yuan():rinput("请输入圆的半径:".decode(utf-8).encode(gbk))print 圆的面积是&#xff1a;,return 3.14*…

Thymeleaf模板引擎---SpringBoot

Thymeleaf模板引擎 前端交给我们的页面&#xff0c;是html页面。如果是我们以前开发&#xff0c;我们需要把他们转成jsp页面&#xff0c;jsp好处就是当我们查出一些数据转发到JSP页面以后&#xff0c;我们可以用jsp轻松实现数据的显示&#xff0c;及交互等。 jsp支持非常强大…

FinTech浪潮已到,五大金融场景将迎变革

FinTech是FinanceTechnology的缩写&#xff0c;可译为“金融科技”&#xff0c;与“互联网金融”一词相比&#xff0c;它更能突出科技的重要性。FinTech所带来的&#xff0c;不仅仅是升级金融领域的各种服务&#xff0c;而是一场革命&#xff0c;是金融领域的颠覆性未来。 FinT…

linux下q和q 的区别,linux命令中q、wq、q!的区别

Linux中没这个命令&#xff1b;只是在vi中有这个指令&#xff1b;q表示退出&#xff1b;w表示保存退出&#xff1b;q!表示强制退出。linux命令是对Linux系统进行管理的命令&#xff0c;对于Linux系统来说&#xff0c;无论是中央处理器、内存、磁盘驱动器、键盘、鼠标&#xff0…

spingmvc 通过xml配置redis jedispol 有密码 通过xml配置redis中的 jedispool(有密码)

https://blog.csdn.net/programmer_hard/article/details/103700334 通过xml配置redis中的 jedispool(有密码) programmer_hard 2019-12-25 15:55:16 209 收藏 分类专栏&#xff1a; java 版权 从git上拉了个项目一直报错, 看了下原因是因为redis一直没连接上. 于是看了下…

常用的字符串加密解密工具类

提前声明一下:此工具类忘记出处了&#xff0c;很抱歉&#xff0c;如果原创遇上了我立马上您的链接&#xff1a; 加密解密的工具类DataEncryptUtil&#xff1a; package org.util;import java.security.MessageDigest; import javax.crypto.KeyGenerator; import javax.cryp…

深入Java集合学习系列:LinkedHashSet的实现原理

转载自 深入Java集合学习系列&#xff1a;LinkedHashSet的实现原理 1. LinkedHashSet概述&#xff1a; LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于&#xff0c;后者维护着一个运行于所有条目的双重链接列表。此链接…

MVC自动配置原理---SpringBoot

MVC自动配置原理 官网阅读 在进行项目编写前&#xff0c;我们还需要知道一个东西&#xff0c;就是SpringBoot对我们的SpringMVC还做了哪些配置&#xff0c;包括如何扩展&#xff0c;如何定制。 只有把这些都搞清楚了&#xff0c;我们在之后使用才会更加得心应手。途径一&…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息

easyui是jquery中很强大的插件&#xff0c;我们开发人员经常会遇到比较复杂的布局&#xff0c;或者在实现某个功能的时候要写好多的代码&#xff0c;比如说分页&#xff0c;那么easyui的datagrid就把他给代替了&#xff0c;现在我简要的分享几个案例。 我们先创建一个员工的实体…

idea合并分支 idea git 合并分支

当前在dev上面 将dev_yjb合并到dev上面 idea git 合并分支 awesome_go 2018-07-12 16:22:20 50149 收藏 52 分类专栏&#xff1a; git idea git的使用&#xff08;四&#xff09;git建立分支与合并分支 作者&#xff1a;马育民 • 2017-11-10 17:05 • 阅读&#xff1a;10…

.NET Core New csproj 如何发布可执行文件

一、前言 .NET工具链在最新的Preview3版本中&#xff0c;引入了新的MSBuild项目系统&#xff0c;项目文件又回归了.csproj的XML文件来管理&#xff0c;项目文件、包引用、程序集引用、.NET Core工具集、发布内容定义等内容。本文主要将主要讨论&#xff0c;如何在新的项目系统中…

xshell linux cmd命令大全,Linux(Xshell)命令大全

对Linux的操作经常是使用Xshell工具&#xff0c;这里特地整理了一些Linux比较常用的快捷键和命令&#xff0c;分享给大家&#xff0c;希望对大家有所帮助^ _ ^一、Linux常用快捷键Ctrl Z &#xff1a;退出Ctrl insert &#xff1a;复制Shift insert &#xff1a;粘贴Tab &am…

java.util.Stack类简介

转载自 java.util.Stack类简介 Stack是一个后进先出&#xff08;last in first out&#xff0c;LIFO&#xff09;的堆栈&#xff0c;在Vector类的基础上扩展5个方法而来 Deque&#xff08;双端队列&#xff09;比起Stack具有更好的完整性和一致性&#xff0c;应该被优先使用…

作为 IT 行业的过来人,你有什么话想对后辈说的?2

1 本人本硕机械工程&#xff0c;目前就职于阿里巴巴淘宝无线事业群&#xff0c;摸爬滚打三年还是能给大家提供点建议。 1、至少每周坚持复盘。这是最重要的习惯&#xff0c;可能大家在学校都有这种印象&#xff0c;明明一本书看过/一道题做过&#xff0c;重新复习的时候感觉什…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息

现在请大家看看Dept的实体类和对应的映射信息&#xff1a; Dept实体类 package org.entity;import java.util.HashSet; import java.util.Set;/*** Dept entity. author MyEclipse Persistence Tools*/public class Dept implements java.io.Serializable {// Fieldsprivate I…

.NET Core 首例 Office 开源跨平台组件(NPOI Core)

前言 最近项目中&#xff0c;需要使用到 Excel 导出&#xff0c;找了一圈发现没有适用于 .NET Core的&#xff0c;不依赖Office和操作系统限制的 Office 组件&#xff0c;于是萌生了把 NPOI 适配并移植到 .NET Core 的想法。 NPOI 的介绍不多说了&#xff0c;不了解的可以看一下…

员工管理系统---SpringBoot

目录结构 全部代码 package com.kuang.config;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;//拦截器 public class LoginHandlerInterceptor implements Hand…

深入Java集合系列之五:PriorityQueue

转载自 深入Java集合系列之五&#xff1a;PriorityQueue 前言 今天继续来分析一下PriorityQueue的源码实现&#xff0c;实际上在Java集合框架中&#xff0c;还有ArrayDeque&#xff08;一种双端队列&#xff09;&#xff0c;这里就来分析一下PriorityQueue的源码。PriorityQu…

linux系统操作大全,Linux系统的常用操作命令大全

From:http://www.xiaoxiaozi.com/2010/11/09/1985/摘自&#xff1a;http://hi.baidu.com/jackywdx/blog/item/393ccf4b64268bf482025cde.html系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostnam…