之前的linode充了5美元,一个月就用完了,还是创建的最便宜的服务器的!!!
以前一直想用用aws的所谓的免费套餐服务器的,现在linode过期了,可以试着用用了
下面是我的操作流程,包含错误及解决方法:
1. 登录aws.amazon.com,注册个账号,注册后登录,弹出界面需要输入信用卡来验证,(用于后面的扣费 ,又说是免费,NND!!!)
2. 信用卡验证后,一会手机短信收到信用卡扣费1美元,折合6.85RMB,郁闷,又说是免费......
3. 登录后进入aws管理控制台,我是广西南宁电信20M,打开页面有点慢,刷新了几次才能打开,选择计算下的EC2
 
4. 按提示创建实例,我这里选择的是带有.NET CORE环境的不知道是上面那个还是下面那个了
 
5. 上图第六步中的配置安全组 那里,加个80端口的规则
6. 创建好后有个地方是让你下载pem密钥文件的,需要用这个文件来登录服务器
7. 我本地用的xshell登录,登录的时候用户名写ec2-user,这是他默认的登录名,好像也不能改,登录后运行dotnet -V命令,可以看到dotnet是已经装上的了
 
 
8. 用命令which nginx 检查nginx有没有安装,这命令刚刚学会的,觉得还蛮好用
9. 用命令apt-get install nginx 安装nginx,发现错误,原来是没有apt-get命令的,看来第四步那里我选择的是上面那个,apt-get命令应该是ubuntu的
10. 用命令yum install nginx 安装nginx,结果还是出错,原来默认是ec2-user登录的,没有权限的,得sudo提升权限
11. 用命令sudo yum install nginx 安装, 成功安装上了nginx,可以which nginx看下在哪里
 
12. 切换到上一步nginx的目录/etc/sbin/, 运行sudo nginx 命令启动
13. 运行命令curl http://localhost 检查nginx是否成功启动,一般都是成功了,返回默认页面的HTML
 
14. nginx的配置文件在/etc/nginx目录下的nginx.conf里,可以看到网站默认目录又是在/usr/share/nginx/html下
 
15. 切换到上一步目录里,vi index.html,按insert键进入编辑模式,编辑完成后按ESC键,再输入:wq 进行保存并退出,结果提示出错,原因还是在权限上
 
16. 在上一步中输入:q 先直接退出vi编辑器,再重新输入命令sudo vi index.html进入编辑 ,编辑完成后再:wq 的时候就可以成功保存并退出了
17. 到www.freenom.com申请免费域名,域名解析到AWS的服务器的外部IP上
 
 
 
18. 第十四步里的nginx配置文件里看到我已经绑定上了www.niunan.cf域名了,第十七步域名解析好后,直接在外部浏览器输入www.niunan.cf成功打开nginx的页面了
 
19. 上面已经把nginx的示例网站都绑定上域名了,接下来运行命令sudo yum install mysql 进行MYSQL的安装
20. 安装完MYSQL后,然后怎么都启动不了,看了下还得装mysql-server,运行命令sudo yum install mysql-server出错
 
21. 最后不知道怎么搞的,突然输入命令sudo yum install maridb-server, 然后就可以安装上了...
22. 装完后启动服务service start mysql 又不行,郁闷。
23. 弄了好久,最后才找到官方文档 https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html 按文档来,用命令 sudo systemctl start mariadb就可以了。然后再运行sudo mysql_secure_installation 来设置root用户密码就行了,就能以 mysql -u root -p ,再输入密码来登录上去了
24. 在本地电脑把mysql数据库导出成sql,命令mysqldump -B niunan -u root -p > c:/temp/niunandb.sql , 其中niunan是数据库名称,c:/temp/niunandb.sql是备份 的路径名称文件
25. 用winscp软件传到服务器上,我传到/tmp/下,服务器上完整路径是/tmp/niunandb.sql, 注意如果是传到其他目录像是/etc/等目录下是没有权限的,winscp登录的还是用的ec2-user账号的
26. 服务器上登录进mysql,输入source /tmp/niunandb.sql导入数据库,一般都是会成功的
27. 本地VS打开NET CORE项目,发布出来,用winscp软件传到服务器目录/home/ec2-user/wwwroot/niunannet 下,在服务器上运行dotnet Niunan.Core.Web.dll,运行成功,会显示http://localhost:5004, 这时再打开另一个xshell连接上服务器,输入curl http://localhost:5004 ,正确的话就会显示html出来了,我第一次执行这命令啥 都不显示,但是在第一个窗口那里报错了,数据库连接字符串出错,传到服务器上后应该先在那个网站目录下sudo vi appsetting.json 修改为正确的数据库连接字符串的
28. 上面修改完后再运行dotnet Niunan.Core.Web.dll, 在另一个窗口再输入curl http://localhost:5004,就成功返回HTML了
29. 把第一个xshell窗口关了,下面来配置nginx运行net core网站,可按官网文档配置 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2
30. 切换到nginx的配置目录下 cd /etc/nginx/conf.d , 运行命令sudo touch niunannet.conf 配置文件,再sudo vi niunannet.conf , 内容改为:
server {
listen 80;
server_name web.niunan.cf;
location / {
proxy_pass http://localhost:5004;
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-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
其中那个http://localhost:5004就是之前我们运行dotnet Niunan.Core.Web.dll显示的那个路径,web.niunan.cf这个域名 我们已经解析到这个服务器IP上了的,然后 ESC → :wq 保存退出
31. 运行命令sudo nginx -s reload,重新加载nginx的配置文件
32. 接下来配置service服务进程运行dotnet Niunan.Core.Web.dll , 切换到目录下,cd /etc/systemd/system/, 运行命令sudo touch niunannet.service, 再运行命令sudo vi niunannet.service编辑文件,内容:
[Unit]
Description=Example .NET Web API App running on Ubuntu
[Service]
WorkingDirectory=/home/ec2-user/wwwroot/niunannet
ExecStart=/usr/bin/dotnet /home/ec2-user/wwwroot/niunannet/Niunan.NetCore.Net.Web.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
以上文件内容都可以在第二十九步的官网文档中看到的,其中那个user=root 是服务器的登录用户,编辑好文件内容后保存退出
33. 运行命令 sudo systemctl enable niunannet.service, 再运行命令 sudo systemctl start niunannet.service, 再运行命令 systemctl status niunannet.service查看服务运行状态,一切顺利的话就应该可以看到running正在运行了
 
在这台aws的服务器上我试一次就正常运行了,但是之前在阿里云服务器上试都是fail运行失败的,那时不知道怎么弄啊弄的就弄好了,反正就是把fail出来的错误信息往百度上贴,然后把网上的解决方案一个一个试,然后就running了,百度不行就bing,再不行就FQ上google,最后好像是在google上搜索到的stack overflow上的贴子解决问题了....
34. 服务运行后再试试curl http://localhost:5004 , 成功返回页面HTML,再试试 curl http://web.niunan.cf(第三十步里绑定上的域名), 也是成功返回HTML, 在外部浏览器输入http://web.niunan.cf, 成功打开网页了
 
35. 至此,整个部署流程结束!!!
尾声:想写篇图文并茂的博客好麻烦,这篇文章从 2019年01月09日 20:00:00 写到 2019年01月10日 00:37:21,期间还不停感冒,真难受,攒钱买空调!!!
 

AWS免费套餐服务器部署NETCORE网站的更多相关文章

  1. 云计算之路-出海记:整一台 aws 免费云服务器

    上次蹭到一张船票,登上了 aws 这艘巨轮,今天要在船上的免费餐厅吃一顿免费晚餐 -- 整一台 aws 免费套餐中的 EC2 服务器体验一下. 进入 EC2 控制台,点击"启动实例" ...

  2. AWS 免费套餐

    AWS 免费套餐 转载自:https://aws.amazon.com/cn/free/?sc_channel=PS&sc_campaign=acquisition_CN&sc_pub ...

  3. 亚马逊AWS免费套餐EC2安装centos连接登录并创建root

    前言:刚开始使用亚马逊的AWS的免费套餐EC2,由于个人习惯使用centos系统,所以果断安装,但是AWS为了安全性,默认禁止用户使用root账户,导致安装配置环境各种问题.所以我把从安好系统后遇到的 ...

  4. 在Linux服务器部署 .NET-Core 项目

    一.文章概要  这篇文章是讲述一个Linux 新手将 .NET-Core 项目部署在 Linux 服务器上的一个记录,以及在部署期间遇到的问题以及解决办法.有不恰当的地方.欢迎大神指正. 二.前期准备 ...

  5. 使用Nginx部署静态网站

    这篇文章将介绍如何利用Nginx部署静态网站. 之前写过2篇有关Nginx的文章,一篇是<利用nginx,腾讯云免费证书制作https>,另外一篇是<linux安装nginx> ...

  6. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  7. 免费服务器AWS免费使用一年详细教程

    AWS免费使用详细教程 福利,亚马逊AWS免费试用一年,简直是爽歪歪.无论是搭建网站,还是自建**,都是不错的选择.详细如下: 开始准备:信用卡一张. 详细视频教程见:http://v.youku.c ...

  8. AWS免费云服务套餐申请步骤及常见问题

    AWS免费云服务套餐申请步骤及常见问题 AWS免费使用套餐常见问题_AWS免费云服务套餐_-AWS云服务https://amazonaws-china.com/cn/free/faqs/ 什么是 AW ...

  9. IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

随机推荐

  1. JavaIO流中的拷贝

    JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: /** * 利用递归实现文件夹的拷贝操作 * 分析:判断 * 是文件:调用拷贝 ...

  2. asp.net结合html使用

    在用asp.net开发系统时,用控件能更方便快捷,但是大家也知道用它的控件会导致不可控,特别是css,如何用前端定义的html+css+js来运用asp.net(c#)呢,下面写了一个小实例,实现页面 ...

  3. es6那些事儿

    一.参考链接 http://www.ecma-international.org/ecma-262/6.0/index.html http://www.ecma-international.org/e ...

  4. 37_Reverse3_digit_Integer

    描述 反转一个只有3位数的整数. 你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000. [ ] 您在真实的面试中是否遇到过这个题? 样例 123 反转之后是 321. 90 ...

  5. YOLO系列:YOLO v2深度解析 v1 vs v2

    概述 第一,在保持原有速度的优势之下,精度上得以提升.VOC 2007数据集测试,67FPS下mAP达到76.8%,40FPS下mAP达到78.6%,可以与Faster R-CNN和SSD一战 第二, ...

  6. LR特征维数特别大实时计算问题

    美团 https://tech.meituan.com/machinelearning-data-feature-process.html 维数灾难 待续...

  7. BZOJ.5251.[八省联考2018]劈配mentor(最大流)

    BZOJ 洛谷 对于每个人,每次枚举一个志愿看是否能增广即可. 对于第二问,可以保留第一问中\(n\)次增广前后的\(n\)张图,二分,在对应图上看是否能增广即可. 貌似匈牙利的某种写法比网络流优多了 ...

  8. HQL实用技术

    HQL是Hibernate Query Language的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法. HQL基础查询  1.获取部分列 多列 /** * 获取部分列 ...

  9. 第一章 初始STM32

    1.3什么是STM32? ST是意法半导体,M是MIcroelectronisc的缩写,32表示32位. 合起来就是:ST公司开发的32位微控制器. 1.4 STM32 能做什么? STM32属于一个 ...

  10. 执行npm run build之后显示空白页面

    最近在学习使用webpack,在项目最后打包过程,执行npm run build之后得到的dist目录放到服务器上打开,显示空白页面,但是标题能正常显示,查看控制台发现是数据位置请求报错,查阅资料后知 ...