当前位置: 移动技术网 > IT编程>开发语言>.net > 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)

两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)

2019年03月20日  | 移动技术网IT编程  | 我要评论

风流镖师,ps字体设计,本山带谁上春晚2014

背景:

上一篇:两篇文章带你走入.net core 世界:centos+kestrel+ngnix 虚拟机先走一遍(一)

已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了。

直接进入主题:

1、购买云服务器

之前在虚拟机跑了一下,感觉还不够真实,于是,准备买台服务器,认真的跑一下。

有阿里云,腾讯云,华为云,还有好多云,去哪买一个?

之前做为华为云的云享专家去参加了一下活动,本来也准备写篇文章,不过相同游记文太多,

这里就转一篇了:让华为云mvp告诉你——在华为的一天可以做什么?,就当作我已经写了吧,哈。

有人问我参加完华为云的活动后有什么感想,我想了想,就回了一句:华为好穷,别问我为什么。

所以,考虑过华为云,不过在比较完三方的价格,以及域名备案的问题,

还是挑了目前优惠力度最大的腾讯云,2.5折买的,记得我以前买的最便宜的是1.89折。

 

2、登陆云服务器

买完服务器,安装选的是centos7.2版本,比起跑虚拟机,这里就省掉了安装过程了。

在控制台想登陆,发现:密码是啥?百了一下,密码要在控制台-更多-密码/密钥-重置密码。

设置好密码就可以直接在控制台上,点登陆,ssh登陆上去了:

 

3、安装.net core sdk

依旧跟着微软的教程走:

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配置下增加upstream配置即可:

upstream nodes {
server 192.168.10.1:8668;
server 192.168.10.2:8668;
}

动静分离:#静态文件交给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 访问,参考:

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=*:5005        ; (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=3    
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=3    
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:

  taurus on centos7:

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网