两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)
背景:
上一篇:两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)
已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了。
直接进入主题:
1、购买云服务器
之前在虚拟机跑了一下,感觉还不够真实,于是,准备买台服务器,认真的跑一下。
有阿里云,腾讯云,华为云,还有好多云,去哪买一个?
之前做为华为云的云享专家去参加了一下活动,本来也准备写篇文章,不过相同游记文太多,
这里就转一篇了:让华为云MVP告诉你——在华为的一天可以做什么?,就当作我已经写了吧,哈。
有人问我参加完华为云的活动后有什么感想,我想了想,就回了一句:华为好穷,别问我为什么。
所以,考虑过华为云,不过在比较完三方的价格,以及域名备案的问题,
还是挑了目前优惠力度最大的腾讯云,2.5折买的,记得我以前买的最便宜的是1.89折。
2、登陆云服务器
买完服务器,安装选的是CentOS7.2版本,比起跑虚拟机,这里就省掉了安装过程了。
在控制台想登陆,发现:密码是啥?百了一下,密码要在控制台-更多-密码/密钥-重置密码。
设置好密码就可以直接在控制台上,点登陆,ssh登陆上去了:
3、安装.NET Core SDK
依旧跟着微软的教程走:https://www.microsoft.com/net/learn/get-started/linuxcentos
4、下载SecureCRT+SecureFX
这里木有可视化,想要复制上传文件,没本地虚拟那么方便了,所以需要一款能连接敲命令行和上传文件的工具了。
下载地址:https://www.portablesoft.org/securecrt-securefx-integrated/
这里记录一下我遇到的坑:
1、本地电脑,N年前就下载过SecureCRT,所以用上它了,但是木有SecureFX这个工具。
2、于是想着,在服务器装个FTP啊,来啊,那就装个标配:vsftp了。
对着教程:https://www.centos.bz/2017/12/centos7%E9%83%A8%E7%BD%B2vsftpd%E6%9C%8D%E5%8A%A1/
一顿操作猛如虎,感觉服务端配置的差不多,准备入坑了:
flashFtp的坑: 本里机找了一个老旧的版本,结果连上去看不到东西, 以为是服务器权限没配置好,折腾半天,最后在工具的选项勾了某个"列表 -l显示”的选项后,连上去能看到目录了。 创建目录也正常了,结果不能上传文件,见鬼了,闹腾很久后,只能换工具了。 FileZilla的坑: 电脑重新装了这个工具,连上去,发现文件也能上传了,以为一切OK了。 结果,发现存在文件小的都上传不了,文件大的都能正常上传,我去,这是什么鬼。 又是折腾服务端配置,又是折腾路由器MTU值,情况依旧是小文件连接超时,传输失败。 后来,想起了SecureCRT标配的工具SecureFX,下载,重新运行它连上去,我X,一切都是这么顺畅。
5、安装配置Ngnix
具体参考上一篇,不过有几个重点配置提一下:
proxy_cookie_domain ~.+$ aries.cyqdata.com;
将Set-Cookie中的Domain值,替换为指定的域名。
Aries设置的Domain是IP属性,Nginx请求转给客户端时,需要转成域名,不设的话,拿到的是原始的IP,设不到Cookie。
网上对这块的说明都是仅有:
proxy_cookie_domain a.com b.com;
固定的把a.com替换成b.com,
考虑到负载均衡一开,这个IP的值就不固定,所以Domain值必须是变量。
难道你们设Cookie都不设置的Domain的啊,设了Domain都不考虑负载的啊。
坑啊,最后还是官网的帮助文档能解决问题,自己写了个正则搞定。
文档地址:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain
至于负载配置和动静态的配置比较简单:
负载均衡:在http配置下增加upstream配置即可: upstream nodes {
server 192.168.10.1:;
server 192.168.10.2:;
} 动静分离:#静态文件交给nginx处理
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
root /var/www;
expires 30d;
}
#静态文件交给nginx处理
location ~ .*\.(js|css)?$
{
root /var/www;
expires 1h;
}
https 访问,参考:https://www.cnblogs.com/tianhei/p/7726505.html
6、安装配置:Supervisor守护进程
当Kestrel跑起来后,第二天,发现它挂了,然后,就知道要装个守护进程,等它挂掉的时候,能自动启动。
为了安装这个,一开始我也是入坑,网上的教程,又坑人不浅,最后找到最简单的yum安装,就两行命令:
yum install epel-release
yum install -y supervisor
默认配置文件:/etc/supervisord.conf 暂时可以不用管,如果要开启网页管理,则修改以下两行:
[inet_http_server] ; inet (TCP) server disabled by default
port=*: ; (ip_address:port specifier, *:port for all iface)
... [supervisorctl]
;serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=http://*:5005 ; use an http:// url to specify an inet socket ....
[include]
files = supervisord.d/*.ini
设置开机启动:
systemctl enable supervisor.service
systemctl daemon-reload
浏览的效果如下:
进程管理配置文件放到:/etc/supervisord.d/目录下即可:
如上图,我创建了两个进程配置文件:
配置文件内容如下:
taurus_mvc.ini
[program:Taurus_MVC]
command=/bin/bash -c "dotnet Taurus.View.dll"
directory=/home/web/taurus/mvc/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=
redirect_stderr=true
stderr_logfile=/var/log/taurus_mvc.err.log
stdout_logfile=/var/log/taurus_mvc.out.log
aries_mvc.ini
[program:Aries_MVC]
command=/bin/bash -c "dotnet Web.UI.dll"
directory=/home/web/aries/mvc/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=
redirect_stderr=true
stderr_logfile=/var/log/aries_mvc.err.log
stdout_logfile=/var/log/aries_mvc.out.log
默认日志文件:/tmp/supervisord.log,可以查看进程的启动信息
命令行输入:supervisorctl,可以查看状态:
更多的说明:https://www.linuxidc.com/Linux/2017-02/140417.htm
总结:
把这两篇文章的内容,走完一次,基本就进入NetCore的世界了。
不过,与其说是NetCore,不如说是走进Linux的世界。
写代码的关键注意点:路径区分大小写及路径用“/”,而不是常用的"\\"。
毕竟更多的时间与坑,都是花在Linux系统及软件安装使用上的。
Aries on CentOS7:mvc.aries.cyqdata.com
Taurus on CentOS7:mvc.taurus.cyqdata.com
两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)的更多相关文章
- 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)
背景: 上一篇:ASP.Net Core on Linux (CentOS7)共享第三方依赖库部署 已经交待了背景,这篇就省下背景了. 折腾的过程分两步: 第一步是:本机跑虚拟机部署试一下: 第二步是 ...
- Linux+Nginx+Supervisor部署ASP.NET Core实操手册
一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...
- 三篇文章带你极速入门php(三)之php原生实现登陆注册
看下成果 ps:纯天然h5,绝不添加任何添加剂(css)以及化学成分(js)(<( ̄ ﹌  ̄)我就是喜欢纯天然,不接受任何反驳) 关于本文 用原生的php和html做了一个登陆注册,大概是可以窥 ...
- vnext 技术两篇文章和评论
研究vnext的两篇 好文章,重点看评论! http://www.cnblogs.com/shanyou/p/4589930.html http://www.cnblogs.com/shanyou/p ...
- 有关C#写一个WindowsService的两篇文章
1.http://blog.csdn.net/yysyangyangyangshan/article/details/10515035 上面的这篇文章一共两段,第二段讲的是使用代码来安装发布这个Win ...
- 难道你还不知道Spring之事务的回滚和提交的原理吗,这篇文章带你走进源码级别的解读。
上一篇文章讲解了获取事务,并通过获取的connection设置只读,隔离级别等:这篇文章讲事务剩下的回滚和提交. 事务的回滚处理 之前已经完成了目标方法运行前的事务准备工作.而这些准备工作的最大目的无 ...
- 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...
- BigDecimal带精度的运算的两篇文章
转自:http://guoliangqi.iteye.com/blog/670908 之前提到过在商业运算中要使用BigDecimal来进行相关的钱的运算(java中关于浮点运算需要注意的 ),可是实 ...
- 【Kubernetes】两篇文章 搞懂 K8s 的 fannel 网络原理
近期公司的flannel网络很不稳定,花时间研究了下并且保证云端自动部署的网络能够正常work. 1.网络拓扑 拓扑如下:(点开看大图) 容器网卡通过docker0桥接到flannel0网卡,而每个 ...
随机推荐
- C#通熟易懂观察者模式
观察者模式(有时又被称为模型-视图(View)模式.源-收听者(Listener)模式或从属者模式)是软件设计模式的一种.将观察者(watcher)和被观察者(subject)完美分离. 这里讲一个场 ...
- 优雅地实现CSS Animation delay
今天写一个css动画时遇到一个有意思的问题,记录如下: 1.需求: 等待元素A的动画加载完,再加载B元素的动画(下图中A为大熊猫,B为下方卡片) 先来看下最后的效果啦: 2.初始思路: 在B元素的动画 ...
- 13.app后端为什么要用到消息队列
很多没有实际项目经验的小伙伴,对消息队列系统非常陌生,看着很多架构的介绍中,都提到消息队列.但是,不知道为什么要用消息队列?什么是消息队列?常见的消息队列产品有哪些? 通过阅读本文,帮你解开以上的疑惑 ...
- [爬虫]Scrapy 错误ordinal not in range(128)
报错了: UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(12 ...
- 根据http协议下载文件保存到相应的文件下
本实例通过提供的http网址来下载文件,并保存到本地指定的文件下. 本例提供的网址为:http://112.53.80.131:8888/database/11.mdb,下载的文件名为:11.mdb ...
- BZOJ_1042_[HAOI2008]硬币购物_容斥原理+背包
BZOJ_1042_[HAOI2008]硬币购物_容斥原理+背包 题意: 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买s i的价值 ...
- BZOJ 1260:[CQOI2007]涂色paint
(⊙o⊙)-,常规课考试又炸了!目测此次我要完蛋了... 又玩脱了,考数学的时候装B装大了! 算了,先进入正题... 题目描述:Description假设你有一条长度为5的木版,初始时没有涂过任何颜色 ...
- HTTP VISUAL HTTP请求可视化工具、HTTP快照工具(公测)
先啰嗦几句,最近工作比较忙,再加上自己又开设了一个小站(简单点),没时间写博客,都快憋坏了,趁着周末有时间,抓紧来一篇~ HTTP VISUAL是一款HTTP可视化工具,它可以记录HTTP请求,包括请 ...
- Python 视频转字符画 - 进阶
这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 1. 速度优化 要是每次播放都要等个一分钟,也太痛苦了一点. 所以可以用 pickle 模块把 video_ch ...
- Python + Appium 【已解决】driver(session)在多个class之间复用,执行完一个类的用例,再次执行下个类的用例时不需要初始化
实现效果:打开App进行自动化测试,只需打开APP一次,按先后顺序执行n个py文件中的相应操作,实现自动化测试. 示例:如截图示例,一个App,根据此APP内不同的模块,写成了不同的py文件, 预期结 ...