【腾讯云的1001种玩法】centos 7 部署 dotnetcore + Angular2 实践

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

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

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

环境安装

1.安装dotnetcore

根据官方指导进行安装;

官网给出的安装引导是安装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=827529
tar zxf dotnet.tar.gz -C /opt/dotnet

(下载的地址不一样)

2.禁用防火墙

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

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

3.安装Nginx

 yum install nginx

 systemctl start nginx

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

项目构建

1.构建项目

在windows环境 构建 指引 参考

npm如果访问问题可以使用tnpm

npm install -g yo
npm install -g generator-aspnetcore-angular2

2.创建项目

选择高级模版

取消npm 安装 使用 tnpm

3.编译项目

编译dotnet ,编译angular2

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

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

4.本地访问

http://localhost:3000/

部署项目

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=Development
dotnet 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
#获取使用reload
nginx -s reload

7.查看成果

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

其他

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木头编程 - moTzxx

PHP 开发学习[2] —— wamp memcache 的安装与扩展(Windows 64)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1084
来自专栏程序员互动联盟

【专业技术】linux启动流程剖析

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管...

3577
来自专栏好好学java的技术栈

手把手从零开始带你学git和GitHub

版本: 想想你平时用的软件,在软件升级之后,你用的就是新版本的软件。你应该见过这样的版本号:v2.0 或者 1511(表示发布时为15年11月),如下图:

632
来自专栏北京马哥教育

教程 | Linux常用命令大全

ls -h (文件大小显示为常见大小单位 B KB MB ...)

1190
来自专栏有趣的Python

5- 快速上手Linux玩转典型应用- Linux常用命令

652
来自专栏magicsoar

版本控制-git的使用

大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。 这周给大家介绍下git的使用 我们为什么需要一个版本控制的软件呢? 我相信大家很多人在...

2138
来自专栏進无尽的文章

代码管理| 创建自己的私有Cocopods库

iOS组件化的实现基本基于cocoapods,如何使用cocoapods创建自己的组件库,是实现组件化的第一要素,下面就创建自己的私有Cocopods库展开实战...

1704
来自专栏IMWeb前端团队

PM2实用入门指南

简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。 下面就对PM2进行入门...

32210
来自专栏北京马哥教育

linux下用tar进行数据备份

豌豆贴心提醒,本文阅读时间7分钟 本机上数据的手工备份 Linux系统上配有功能强大的tar命令,可以灵活地备份数据。 tar最初是为了制作磁带备份而设计的把...

2788
来自专栏张首富-小白的成长历程

Linux文件属性详解

文件存储在硬盘上,硬盘的最小存储单位叫做"扇区"(sector)。每个"扇区"的大小为512字节(byte), ,操作系统读取硬盘的时候,不会一个个扇区的读取,...

1272

扫码关注云+社区